繁体   English   中英

安装工具后找不到模块

[英]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 parameterimport src.parameter 有没有办法避免这种情况?

您在src下没有任何包,因此find_packages()找不到任何包。 'src/parameter'作为一个包列出是没​​有意义的,因为它不是一个包(一个包含文件__init__.py的目录),它是一个模块。 这里只有'src'是一个包。

我必须将import parameter更改为import src.parameter

Python 3,我想? Python 3 更喜欢绝对导入,但允许相对导入。 所以要么使用import src.parameter要么使用import .parameter

import parameter在 Python 3 中是绝对导入(在 Python 2 中是相对+绝对导入),即 Python 通过sys.path搜索parameter并失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM