安装工具后找不到模块

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 但失败了。