3

我一直在使用 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 权限的托管环境(例如 MacOSX 的 fink)中时,该文件将由 root 拥有并保留权限。然后以用户身份运行的代码无法访问此文件。

这个项目和其他有相同问题的项目(通常是安装的鸡蛋部分)使用 python setup.py sdist upload。

这些项目应该如何构建一个具有适当权限的 tar 以便所有文件都是世界可读的?例如

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

4

1 回答 1

4

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

一个简单的解决方法是在 tar'ing 之前破坏 umask 位和 chmod 文件

umask 0022 && chmod -R a+rX . && python setup.py sdist upload
于 2013-09-04T02:36:25.120 回答