Python setuptools:即使通过 find_packages 找到的软件包也没有安装
Python setuptools: a package not installed even when found through find_packages
我正在尝试构建具有以下结构的包:
main-dir/
setup.py
package/
__init__.py
bar/
__init__.py
baz/
__init__.py
package_foo/
__init__.py
boo/
__init__.py
在 setup.py
中使用 find_packages()
我得到了正确的包列表,例如:
[
'package',
'package.bar',
'package.baz',
'package_foo',
'package_foo.boo',
]
但是,当我安装包时,我只在site-packages
目录中安装了package
,而package_bar
根本看不到。更奇怪的是,如果我重命名 package
目录(例如 packagee
),它也不会安装。
明确一点,我正在尝试将 package
和 package_foo
安装在 site-packages
的顶层,如下所示:
import package
import package_foo
对去哪条路线有什么建议吗?
更新:我需要澄清的是,只有当我将包上传到本地 运行 的 devpi
服务器时才会发生此问题; python setup.py build
在 build/lib.linux-x86_64-2.7/
目录中正确创建了两个包。
好的,我已经设法弄清楚了问题:原来 devpi upload
默认情况下使用它在包中找到的任何版本控制系统,并从那里构建分发。由于我的更改尚未提交,它继续从旧代码构建,其中不包括 package_foo
目录。幸运的是,提供了忽略版本控制的选项,因此正确使用的命令是:
devpi upload --no-vcs
当然,我计划为最终版本对包进行适当的版本控制,但在开发过程中仍需要构建和上传分发版。
我正在尝试构建具有以下结构的包:
main-dir/
setup.py
package/
__init__.py
bar/
__init__.py
baz/
__init__.py
package_foo/
__init__.py
boo/
__init__.py
在 setup.py
中使用 find_packages()
我得到了正确的包列表,例如:
[
'package',
'package.bar',
'package.baz',
'package_foo',
'package_foo.boo',
]
但是,当我安装包时,我只在site-packages
目录中安装了package
,而package_bar
根本看不到。更奇怪的是,如果我重命名 package
目录(例如 packagee
),它也不会安装。
明确一点,我正在尝试将 package
和 package_foo
安装在 site-packages
的顶层,如下所示:
import package
import package_foo
对去哪条路线有什么建议吗?
更新:我需要澄清的是,只有当我将包上传到本地 运行 的 devpi
服务器时才会发生此问题; python setup.py build
在 build/lib.linux-x86_64-2.7/
目录中正确创建了两个包。
好的,我已经设法弄清楚了问题:原来 devpi upload
默认情况下使用它在包中找到的任何版本控制系统,并从那里构建分发。由于我的更改尚未提交,它继续从旧代码构建,其中不包括 package_foo
目录。幸运的是,提供了忽略版本控制的选项,因此正确使用的命令是:
devpi upload --no-vcs
当然,我计划为最终版本对包进行适当的版本控制,但在开发过程中仍需要构建和上传分发版。