簡體   English   中英

python安裝包與子模塊

[英]python installing package with submodules

我有一個自定義項目包,其結構如下:

 package-dir/
     mypackage/
         __init__.py
         submodule1/
              __init__.py
              testmodule.py
         main.py
     requirements.txt
     setup.py

使用cd package-dir后跟$pip install -e . 或者pip install . 正如python-packaging所建議的那樣,只要我從package-dir訪問包

例如 :

 $cd project-dir
 $pip install .

在這一點上這工作:

 $python -c 'import mypackage; import submodule1'

但這不起作用

 $ cd some-other-dir
 $ python -c 'import mypackage; import submodule1'
 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ImportError: No module named submodule1

如何安裝所有子模塊?

另外,如果我檢查了package-dir/build/lib.linux-x86_64-2.7/mypackage目錄,我只看到mypackage/*.py package-dir/build/lib.linux-x86_64-2.7/mypackage的直接文件和NO mypackage/submodule1

setup.py看起來像:

from setuptools import setup
from pip.req import parse_requirements

reqs = parse_requirements('./requirements.txt', session=False)
install_requires = [str(ir.req) for ir in reqs]


def readme():
    with open('README.rst') as f:
        return f.read()

setup(name='mypackage',
      version='1.6.1',
      description='mypackage',
      long_description=readme(),
      classifiers=[

      ],
      keywords='',
      url='',
      author='',
      author_email='',
      license='Proprietary',
      packages=['mypackage'],
      package_dir={'mypackage': 'mypackage'},
      install_requires=install_requires,
      include_package_data=True,
      zip_safe=False,
      test_suite='nose.collector',
      tests_require=['nose'],
      entry_points={
          'console_scripts': ['mypackage=mypackage.run:run'],
      }
      )

setup.py缺少有關包結構的信息。 您可以通過添加一行來啟用自動發現

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

它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM