python包的正确权限

时间:2013-09-04 01:39:09

标签: python packaging setuptools software-distribution

我一直看到这个用python包...一个python包安装额外的文件。在打包的tar中,您可以得到以下内容:

-rw-r-----  1 schwehr eng     7 Sep  3 18:10 VERSION

有:

https://github.com/scrapy/scrapy/blob/master/scrapy/VERSION

然后,当您以root用户身份将python setup.py安装到使用root权限的托管环境(例如fink for MacOSX)时,此文件将由root拥有并保留权限。然后代码运行,因为用户无法访问此文件。

此项目和具有相同问题的其他项目(通常使用其安装的egg部分)使用python setup.py sdist upload。

这些项目如何构建具有适当权限的tar,以便所有文件都具有全局可读性? e.g。

wget https://pypi.python.org/packages/source/S/Scrapy/Scrapy-0.18.2.tar.gz#md5=14f105e2fdb047c666b944990e691389

tar tfvv Scrapy-0.18.2.tar.gz  | head
drwx------ buildbot/buildbot 0 2013-09-03 10:30 Scrapy-0.18.2/
-rw------- buildbot/buildbot 385 2013-09-03 10:27 Scrapy-0.18.2/MANIFEST.in
-rw------- buildbot/buildbot 140 2013-09-03 10:30 Scrapy-0.18.2/setup.cfg
drwx------ buildbot/buildbot   0 2013-09-03 10:30 Scrapy-0.18.2/bin/
-rw------- buildbot/buildbot 114 2013-09-03 10:27 Scrapy-0.18.2/bin/runtests.bat
-rwx------ buildbot/buildbot 1271 2013-09-03 10:27 Scrapy-0.18.2/bin/runtests.sh
-rwx------ buildbot/buildbot   68 2013-09-03 10:27 Scrapy-0.18.2/bin/scrapy
drwx------ buildbot/buildbot    0 2013-09-03 10:30 Scrapy-0.18.2/scrapy/
-rw------- buildbot/buildbot 2785 2013-09-03 10:27 Scrapy-0.18.2/scrapy/telnet.py
drwx------ buildbot/buildbot    0 2013-09-03 10:30 Scrapy-0.18.2/scrapy/commands/

另请参阅:https://github.com/scrapy/scrapy/issues/377

1 个答案:

答案 0 :(得分:4)

当使用限制性umask生成sdist tarball或者在没有其他人/没有人读/执行权限的情况下创建文件时,会发生这种情况。

一个简单的解决方法是在tar'ing

之前扩展umask位和chmod文件
umask 0022 && chmod -R a+rX . && python setup.py sdist upload