无法在 python 包中导入文件
unable to import file in a python package
我正在尝试创建一个 python 包,但我遇到了导入问题。这是目前的情况:
[lpuggini@machinelearn-1 src]$ source ~/VirtualEnvs/time_series_algorithms_venv/bin/activate
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ tree
.
|-- TimeSeriesAlgorithms.egg-info
| |-- PKG-INFO
| |-- SOURCES.txt
| |-- dependency_links.txt
| `-- top_level.txt
|-- requirements.txt
|-- setup.py
`-- time_series_algorithms
|-- __init__.py
|-- __init__.pyc
|-- examples
| |-- example_percentage_variation.py
| `-- example_percentage_variation.py~
|-- percentage_varation.py
`-- percentage_varation.pyc
3 directories, 12 files
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python setup.py develop
/home/lpuggini/VirtualEnvs/time_series_algorithms_venv/lib/python2.7/site-packages/setuptools/dist.py:475: UserWarning: Normalizing '0.1dev' to '0.1.dev0'
normalized_version,
running develop
running egg_info
writing TimeSeriesAlgorithms.egg-info/PKG-INFO
writing top-level names to TimeSeriesAlgorithms.egg-info/top_level.txt
writing dependency_links to TimeSeriesAlgorithms.egg-info/dependency_links.txt
reading manifest file 'TimeSeriesAlgorithms.egg-info/SOURCES.txt'
writing manifest file 'TimeSeriesAlgorithms.egg-info/SOURCES.txt'
running build_ext
Creating /home/lpuggini/VirtualEnvs/time_series_algorithms_venv/lib/python2.7/site-packages/TimeSeriesAlgorithms.egg-link (link to .)
TimeSeriesAlgorithms 0.1.dev0 is already the active version in easy-install.pth
Installed /home/lpuggini/mlp/time_series_algorithms/trunk/src
Processing dependencies for TimeSeriesAlgorithms==0.1.dev0
Finished processing dependencies for TimeSeriesAlgorithms==0.1.dev0
然后当我尝试 运行 某些代码时,出现以下错误:
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python time_series_algorithms/examples/example_percentage_variation.py
Traceback (most recent call last):
File "time_series_algorithms/examples/example_percentage_variation.py", line 2, in <module>
from time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
ImportError: No module named percentage_variation
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
这是我的 setup.py
文件
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ cat setup.py
from setuptools import setup, find_packages
setup(
name='TimeSeriesAlgorithms',
version='0.1dev',
packages=find_packages(),
)
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
我不知道导入失败的原因。我正在使用 python 2.7
注意:
我可以导入模块,但不能导入 python 文件:
(time_series_algorithms_venv) [lpuggini@machinelearn-1 ~]$ python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time_series_algorithms
>>> from time_series_algorithms import percentage_variation
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name percentage_variation
>>>
[
对评论 1 的回答:
评论中建议的选项也失败了
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python time_series_algorithms/examples/example_percentage_variation.py
Traceback (most recent call last):
File "time_series_algorithms/examples/example_percentage_variation.py", line 2, in <module>
from TimeSeriesAlgorithms.time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
ImportError: No module named TimeSeriesAlgorithms.time_series_algorithms.percentage_variation
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
这是 OP 文件名中的一个简单拼写错误:
文件名为:
time_series_algorithms/percentage_varation.py
导入语句是:
from time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
所以文件是 varation
,导入是 variation
。
这可能在 IDE 中可以观察到,或者 python 脚本本身的 strace 会显示它无法打开 percentage_variation.py
文件,即使它看起来在那里。
我正在尝试创建一个 python 包,但我遇到了导入问题。这是目前的情况:
[lpuggini@machinelearn-1 src]$ source ~/VirtualEnvs/time_series_algorithms_venv/bin/activate
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ tree
.
|-- TimeSeriesAlgorithms.egg-info
| |-- PKG-INFO
| |-- SOURCES.txt
| |-- dependency_links.txt
| `-- top_level.txt
|-- requirements.txt
|-- setup.py
`-- time_series_algorithms
|-- __init__.py
|-- __init__.pyc
|-- examples
| |-- example_percentage_variation.py
| `-- example_percentage_variation.py~
|-- percentage_varation.py
`-- percentage_varation.pyc
3 directories, 12 files
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python setup.py develop
/home/lpuggini/VirtualEnvs/time_series_algorithms_venv/lib/python2.7/site-packages/setuptools/dist.py:475: UserWarning: Normalizing '0.1dev' to '0.1.dev0'
normalized_version,
running develop
running egg_info
writing TimeSeriesAlgorithms.egg-info/PKG-INFO
writing top-level names to TimeSeriesAlgorithms.egg-info/top_level.txt
writing dependency_links to TimeSeriesAlgorithms.egg-info/dependency_links.txt
reading manifest file 'TimeSeriesAlgorithms.egg-info/SOURCES.txt'
writing manifest file 'TimeSeriesAlgorithms.egg-info/SOURCES.txt'
running build_ext
Creating /home/lpuggini/VirtualEnvs/time_series_algorithms_venv/lib/python2.7/site-packages/TimeSeriesAlgorithms.egg-link (link to .)
TimeSeriesAlgorithms 0.1.dev0 is already the active version in easy-install.pth
Installed /home/lpuggini/mlp/time_series_algorithms/trunk/src
Processing dependencies for TimeSeriesAlgorithms==0.1.dev0
Finished processing dependencies for TimeSeriesAlgorithms==0.1.dev0
然后当我尝试 运行 某些代码时,出现以下错误:
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python time_series_algorithms/examples/example_percentage_variation.py
Traceback (most recent call last):
File "time_series_algorithms/examples/example_percentage_variation.py", line 2, in <module>
from time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
ImportError: No module named percentage_variation
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
这是我的 setup.py
文件
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ cat setup.py
from setuptools import setup, find_packages
setup(
name='TimeSeriesAlgorithms',
version='0.1dev',
packages=find_packages(),
)
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
我不知道导入失败的原因。我正在使用 python 2.7
注意:
我可以导入模块,但不能导入 python 文件:
(time_series_algorithms_venv) [lpuggini@machinelearn-1 ~]$ python
Python 2.7.5 (default, Oct 30 2018, 23:45:53)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time_series_algorithms
>>> from time_series_algorithms import percentage_variation
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name percentage_variation
>>>
[
对评论 1 的回答: 评论中建议的选项也失败了
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$ python time_series_algorithms/examples/example_percentage_variation.py
Traceback (most recent call last):
File "time_series_algorithms/examples/example_percentage_variation.py", line 2, in <module>
from TimeSeriesAlgorithms.time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
ImportError: No module named TimeSeriesAlgorithms.time_series_algorithms.percentage_variation
(time_series_algorithms_venv) [lpuggini@machinelearn-1 src]$
这是 OP 文件名中的一个简单拼写错误:
文件名为:
time_series_algorithms/percentage_varation.py
导入语句是:
from time_series_algorithms.percentage_variation import PercentageVariationAD, PercentageVariationADConfig
所以文件是 varation
,导入是 variation
。
这可能在 IDE 中可以观察到,或者 python 脚本本身的 strace 会显示它无法打开 percentage_variation.py
文件,即使它看起来在那里。