Permissões ao criar um pacote Python simples para pip

1

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?

    
por ws6079 15.12.2014 / 21:36

1 resposta

1

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!

    
por 15.12.2014 / 22:26