使用 setuptools 的 python 替代包设置 [英] python alternative package setup using setuptools
问题描述
我在使用我的特定设置添加包时遇到了一些问题:
<预><代码>.├── pkg_a│ ├── pkg_a│ │ ├── __init__.py│ │ └── module_a.py│ └── run_a.py├── pkg_b│ ├── pkg_b│ │ ├── __init__.py│ │ └── module_b.py│ └── run_b.py└── setup.py我的目标是能够在不重复包名两次的情况下导入包模块.
例如,在 run_a.py
中,我希望能够调用 from pkg_a import module_a
而不是调用 from pkg_a.pkg_a import module_a
我尝试按照 here.通过创建 setup.py
如下:
from setuptools import setup设置(名称=测试",包=['pkg_a','pkg_b'],package_dir={'pkg_a':'pkg_a/pkg_a', 'pkg_b':'pkg_b/pkg_b'})
但这并没有达到上面提到的预期效果,因为我试图调用 python setup.py develop
然后 python -c 'from pkg_a import module_a'
.
这个特殊的设置可以实现吗?我在这里搞砸了什么?谢谢大家!
package_dir
修改不适用于 editable(又名 develop)安装.可编辑安装唯一可接受的package_dir
修改是覆盖所谓的src
-layout:
package_dir={'': 'src'},
I am having some trouble adding packages with my particular setup:
.
├── pkg_a
│ ├── pkg_a
│ │ ├── __init__.py
│ │ └── module_a.py
│ └── run_a.py
├── pkg_b
│ ├── pkg_b
│ │ ├── __init__.py
│ │ └── module_b.py
│ └── run_b.py
└── setup.py
My goal is to be able to import package modules without repeating package name twice.
For example, in run_a.py
I'd like to be able to call from pkg_a import module_a
instead of calling from pkg_a.pkg_a import module_a
I tried to follow Section 2.1 of doc here. By creating setup.py
as follow:
from setuptools import setup
setup(
name="test",
packages=['pkg_a', 'pkg_b'],
package_dir={'pkg_a':'pkg_a/pkg_a', 'pkg_b':'pkg_b/pkg_b'}
)
But this does not achieve the desired effect as mentioned above as I tried to call python setup.py develop
and then python -c 'from pkg_a import module_a'
.
Is this particular setup achievable? And what am I messing up here? Thanks all!
package_dir
modifications do not work with editable (aka develop) installations. The only acceptable package_dir
modification for editable installations is the one that covers the so-called src
-layout:
package_dir={'': 'src'},
这篇关于使用 setuptools 的 python 替代包设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!