我最近注意到我无法安装自己的Python
软件包。我收到一个错误,表明包含Python
模块的包无效。所以,我更新了我的setup.py
并删除了一些元素,这就是我现在所拥有的:
from setuptools import setup
setup(
name='project',
version='0.3.0',
packages=['project'],
license='GPL',
#zip_safe=False,
#include_package_data=True,
#package_data = { 'package': [ 'README.txt', '*.py' ] },
install_requires=[
'PyYAML >= 3.11',
'logger >= 0.2.0',
],
entry_points={
'console_scripts': ['project = project:main']
},
)
我删除了一些元素并调用了项目项目。基本上,在项目中,我有一个包,库和一些Python模块。在删除这些行之前:
#zip_safe=False,
#include_package_data=True,
#package_data = { 'package': [ 'README.txt', '*.py' ] },
......最近没有用。
奇怪的是,这个setup.py
直到一个月前才开始工作。也就是说,在对这些项目进行评论并运行python setup.py
版本后,我不再收到有关软件包无效的错误,但同样地,我发现在运行pip install dist/project-0.0.1.tar.gz
时没有安装任何内容。在由python setup.py sdist
构建的文件中,我确实看到了我期望看到的所有文件。他们只是没有安装,所以我有效地遗漏了根文件夹下的所有软件包(除了init之外的所有软件包)。
我在这里缺少什么?
答案 0 :(得分:0)
编辑: 解决方案是:
packages=find_packages(),
对我来说,黑客的解决方案就是这样做:
packages=['project', 'project/libraries', 'project/system', 'project/services'],
无论出于何种原因,包裹不再以递归方式工作。
一旦我这样做,瞧,它有效。我可能会稍后回过头来,因为我很好奇发生了什么变化。