加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python distutils为package_dir设置相对路径

发布时间:2020-12-20 13:44:16 所属栏目:Python 来源:网络整理
导读:我看过这里: How can I get my setup.py to use a relative path to my files? 和这里: python distutils does not include data_files 和这里: ?Confused about the package_dir and packages settings in setup.py 但没有找到爱情. 我怀疑distutils不支
我看过这里:
How can I get my setup.py to use a relative path to my files?
和这里:
python distutils does not include data_files

和这里:
?Confused about the package_dir and packages settings in setup.py
但没有找到爱情.

我怀疑distutils不支持我正在尝试使用的目录结构,但会喜欢确认和/或建议如何改进.

我有以下目录结构:

/src  
├── user 
├── admin  
│?? ├── admin.py  
│?? ├── LICENSE.txt  
│?? ├── MANIFEST  
│?? ├── MANIFEST.in  
│?? ├── README.txt  
│?? └── setup.py  
└── lib  
    ├── __init__.py  
    ├── __init__.pyc  
    ├── rcodes.py  
    ├── rcodes.pyc  
    ├── validation.py  
    └── validation.pyc

src中的几个项目依赖于lib包.但是,当尝试在/ src / admin中运行setup.py时,我无法在最终包中包含lib目录(使用setup.py sdist).

Setup.py如下:
来自distutils.core导入设置

setup(
name='admin_server',version='0.0.0',author='Instamrkt',author_email='info@instamrkt.com',url='http://instamrkt.com',description='Instamrkt Admin Server',packages=['lib'],package_dir = {'lib': '../lib'},py_modules = [
'admin','lib.rcodes','lib.validation'
],)

产量:

[foozle@ip-172-31-36-251 admin]$python setup.py sdist
running sdist
running check
reading manifest template 'MANIFEST.in'
writing manifest file 'MANIFEST'
creating admin_server-0.0.0
making hard links in admin_server-0.0.0...
hard linking README.txt -> admin_server-0.0.0
hard linking admin.py -> admin_server-0.0.0
hard linking setup.py -> admin_server-0.0.0
Creating tar archive
removing 'admin_server-0.0.0' (and everything under it)
[foozle@ip-172-31-36-251 admin]$tar tzf ./dist/admin_server-0.0.0.tar.gz
admin_server-0.0.0/
admin_server-0.0.0/PKG-INFO
admin_server-0.0.0/admin.py
admin_server-0.0.0/setup.py
admin_server-0.0.0/README.txt

包lib缺少.

只是为了明确我希望在包中保留相同的目录结构,以便我可以在多个发行版中使用lib用于不同的应用程序.

谢谢!

解决方法

使用package_dir选项指向上游目录(‘../lib’)时,无法创建源分发,因为sdist将按原样复制整个源树,并且’../lib’最终在构建之外树.

但是,您可以创建二进制分发:

python setup.py bdist

或者,如果使用setuptools:

python setup.py bdist_wheel

如果您的模块是纯Python,则后者具有创建与系统无关的分发的优势.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读