为 pip 创建简单 Python 包时的权限

为 pip 创建简单 Python 包时的权限

我正在尝试打包我编写的一个简单应用程序,以便可以使用python setup.py install和(稍后)使用pip install awesomeapp.

该应用程序由同一目录中的两个文件组成:

awesomeapp
awesomemod.py

哪里awesomeapp是启动脚本(也在 python 中),它执行import awesomemod.一切正常,而且总体来说很棒。接下来我创建了一个setup.py如下所示的文件:

from distutils.core import setup
setup(name='awesomeapp',
  version='1.4',
  scripts=['awesomeapp'],
  py_modules=['awesomemod'],
  install_requires=['otherapp>1.0'],
  description='amazing app which does awesome things',
  # ...
  platforms='UNIX',
  long_description='bar',
  )

现在,使用sudo python setup.py install(以及 pip)安装可以正常执行。在 OSX 上,一切都按预期运行。然而在 Ubuntu 上(经过精确和可靠的测试),我收到错误:

traceback (most recent call last):
  File "/usr/local/bin/awesomeapp", line 12, in <module>
    import awesomemod
ImportError: No module named awesomemod

当我运行awesomeapp脚本时。但是,如果我使用sudo找到的模块运行脚本。该模块的安装/usr/local/lib/python2.7/dist-packages权限-rw-r-----是我的非 root 用户无法读取的。我需要更改什么才能使普通用户不需要 root 来运行我的应用程序?

答案1

.bash_profile看来我在我的档案中找到了罪魁祸首。它包括条目

umask 027

注释掉该行后,权限就固定了!

相关内容