python setup.py install
(後で)使用して使用できるように、私が書いた単純なアプリケーションをパッケージ化したいと思いますpip install awesomeapp
。
アプリケーションは、同じディレクトリにある2つのファイルで構成されています。
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',
)
これで(pipも含む)を使用したインストールがsudo python setup.py install
正常に動作します。 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
見つかったモジュールを使用してスクリプトを実行すると。 root以外のユーザーが読めない/usr/local/lib/python2.7/dist-packages
権限でモジュールがインストールされました。-rw-r-----
一般ユーザーが自分のアプリケーションを実行するためにrootを必要としないようにするには、何を変更する必要がありますか?
答え1
.bash_profile
私のファイルで犯人を見つけたようです。アイテムが含まれています
umask 027
その行をコメントアウトすると、権限が変更されます。