我正在尝试构建具有以下结构的软件包:
main-dir/
setup.py
package/
__init__.py
bar/
__init__.py
baz/
__init__.py
package_foo/
__init__.py
boo/
__init__.py
使用find_packages()
insetup.py
获得正确的软件包列表,例如:
[
'package',
'package.bar',
'package.baz',
'package_foo',
'package_foo.boo',
]
但是,当我安装该软件包时,我只会package
安装在site-packages
目录中,并且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
当然,我计划为最终发行版正确打包该软件包,但仍然需要在开发过程中构建和上载发行版。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句