【问题标题】:setuptools see a subdir in my packagesetuptools 在我的包中看到一个子目录
【发布时间】:2016-03-08 15:39:32
【问题描述】:

我基于setuptools 为我的包创建了一个setup.py。直到我添加了一个子模块,它实际上是一个子目录,里面有一个__init__.py,它工作得很好。现在安装正常完成,但是当我尝试导入包时,我得到了

ImportError: No module named genalgs

我的包裹组织如下:

topdir/
-> setup.py
-> packg/
---> __init__.py
---> submodule.py (which imports genalgs)
---> opthermod.py
---> genalgs/
-----> __init__.py
-----> subsubmod.py
-----> othersub.py

我检查了build/lib.linux-x86_64-2.7/packg/ 目录,除了genalgs/ 目录之外的所有内容都在那里,所以我猜这是错误。

我正在使用的setup 电话是

setup(name='pckg',
      version='0.1.0',
      description='something',
      long_description=open('README.md').read(),
      url='https://github.com/som/som.git',
      author='My name',
      author_email='mymail@mail.com',
      license='GNU GPL V3.0',
      packages=['pckg'],
      install_requires=depencies)

【问题讨论】:

  • 您要导入哪些代码?
  • @nikniknik2016 我不太明白这个问题。我正在运行setup.py,它“成功”安装了包,然后我尝试使用import packg从ipython中的任何随机位置导入包,当我到达import genalgs时,这给了我这个错误行。
  • 可能是import packg.genalgs 会有帮助吗?
  • 不:ImportError: No module named genalgsgenalgs 的问题不包含在构建中。

标签: python package packages setuptools


【解决方案1】:

您需要将packages 参数设置为您的setup() 调用更巧妙地告诉它您想要包含的所有包:

from setuptools import setup, find_packages

setup(...
     packages=find_packages(),
...)

【讨论】:

  • 工作就像一个魅力。在旁注中,distutils 有类似的东西吗?
猜你喜欢
  • 1970-01-01
  • 2021-07-07
  • 2021-01-20
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2020-05-01
相关资源
最近更新 更多