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
,然后按照 python-packaging 的建议使用 $pip install -e .
或 pip install .
,只要我从 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
中的直接文件,而没有 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(),
)
给它。
我有一个自定义项目包,其结构如下:
package-dir/
mypackage/
__init__.py
submodule1/
__init__.py
testmodule.py
main.py
requirements.txt
setup.py
使用 cd package-dir
,然后按照 python-packaging 的建议使用 $pip install -e .
或 pip install .
,只要我从 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
中的直接文件,而没有 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(),
)
给它。