安装工具后找不到模块
Module not found after setuptools
我下面有一个 setup.py 文件,我
maindir
|- setup.py
|-src
|- __init__.py
|- pipeline.py
|- parameter.py
和
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
classifiers=[
'Programming Language :: Python',
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License (GPL)'
],
packages=setuptools.find_packages(),
license='LICENSE.txt',
long_description=open('README.md').read(),
entry_points={'console_scripts': ['step1 = src.pipeline:step1']}
)
其中 pipeline.py
的顶部有 import parameter
。
我运行 python setup.py install
但是后来它说找不到模块parameter.py
。因此,我没有使用 packages = find_packages()
,而是使用了 packages=['src/parameter','src']
,但随后我必须将 import parameter
更改为 import src.parameter
。有没有办法避免这种情况?
您在 src
下没有任何软件包,因此 find_packages()
找不到任何软件包。将 'src/parameter'
作为一个包列出是没有意义的,因为它不是一个包(包含文件 __init__.py
的目录),它是一个模块。这里只有'src'
是一个包裹
I have to change import parameter
to import src.parameter
Python 3,我想? Python 3 更喜欢绝对导入但允许相对导入。所以要么使用 import src.parameter
要么 import .parameter
import parameter
是 Python 3 中的绝对导入(在 Python 2 中是相对+绝对导入),即 Python 搜索 sys.path
找到 parameter
但失败了。
我下面有一个 setup.py 文件,我
maindir
|- setup.py
|-src
|- __init__.py
|- pipeline.py
|- parameter.py
和
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
classifiers=[
'Programming Language :: Python',
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License (GPL)'
],
packages=setuptools.find_packages(),
license='LICENSE.txt',
long_description=open('README.md').read(),
entry_points={'console_scripts': ['step1 = src.pipeline:step1']}
)
其中 pipeline.py
的顶部有 import parameter
。
我运行 python setup.py install
但是后来它说找不到模块parameter.py
。因此,我没有使用 packages = find_packages()
,而是使用了 packages=['src/parameter','src']
,但随后我必须将 import parameter
更改为 import src.parameter
。有没有办法避免这种情况?
您在 src
下没有任何软件包,因此 find_packages()
找不到任何软件包。将 'src/parameter'
作为一个包列出是没有意义的,因为它不是一个包(包含文件 __init__.py
的目录),它是一个模块。这里只有'src'
是一个包裹
I have to change
import parameter
toimport src.parameter
Python 3,我想? Python 3 更喜欢绝对导入但允许相对导入。所以要么使用 import src.parameter
要么 import .parameter
import parameter
是 Python 3 中的绝对导入(在 Python 2 中是相对+绝对导入),即 Python 搜索 sys.path
找到 parameter
但失败了。