Parece que encontrei o culpado no meu arquivo .bash_profile
. Incluiu a entrada
umask 027
Depois de comentar a linha, as permissões são corrigidas!
Estou tentando empacotar um aplicativo simples que eu escrevi, para que ele possa ser instalado em um sistema usando python setup.py install
e (mais tarde) usando pip install awesomeapp
.
O aplicativo consiste em dois arquivos no mesmo diretório:
awesomeapp
awesomemod.py
onde awesomeapp
é o script inicial (também em python) que faz import awesomemod
. Tudo funciona e é geralmente incrível. Em seguida, criei um arquivo setup.py
que se parece com isso:
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',
)
Agora, a instalação com sudo python setup.py install
(e também com pip) é executada sem erros. No OSX tudo funciona como esperado. No entanto, no Ubuntu (testado com precisão e confiança), recebo o erro:
traceback (most recent call last):
File "/usr/local/bin/awesomeapp", line 12, in <module>
import awesomemod
ImportError: No module named awesomemod
quando executo o script awesomeapp
. No entanto, se eu executar o script usando sudo
, o módulo será encontrado. O módulo está instalado em /usr/local/lib/python2.7/dist-packages
com -rw-r-----
permissões que não podem ser lidas pelo meu usuário não raiz. O que preciso alterar para que os usuários normais não precisem do root para executar meu aplicativo?