2016-05-12 6 views
1

Iamはroot権限を持たないサーバ上で作業しています。再起動後にはPath変数が破壊されているようです。 Iamはvirtualenvの使用が許可されていないため、pip install --user packageを使用してpythonパッケージをインストールします。Ubuntuは.localのpythonパスを認識しません

再起動してから、私は時代遅れ/usr/lib/python2.7/dist-packages内のライブラリではなく/.local/lib/python2.7/site-packagesを使用することができます。

端末の.localパスにあるscrapyやspyderなどのパッケージも使用できません。私はすでにをPYTHONPATH = $ PYTHONPATHにエクスポートしました:/。local/lib/python2.7/site-packagesしかし、変更はありません。

.local pythonでprint(sys.path)を実行すると、パスも表示されません。

他のパスを変更する必要はありますか?

OSはUbuntu 14.04です。

ありがとうございます。

+0

:このよう

をインストールします。しかし私のために、IPythonは正しい 'sys.path'を取得し、' .local/lib/python2.7/site-packages'にインストールされたモジュールをインポートします。この問題はここでは言及されていますが(https://stackoverflow.com/questions/23209192/ipython-sys-path-different-from-python-sys-path)、なぜ突然Pythonが間違ったサイトパッケージ... – PlasmaBinturong

答えて

0

次のことを試してください:Pythonは常に最初に見つかったパッケージを使用しています

whereis python 

。 PYTHONPATHは、システムの後にsys.pathに追加されます。だから、通常はシステムを最初に見つけます。しかし、 "公式の"ユーザごとのパッケージディレクトリはその前に置かれているようです。だから、あなたの個人的なsite-packagesディレクトリを作成します。

mkdir -p $HOME/.local/lib64/python2.7/site-packages 
mkdir $HOME/bin 

このディレクトリには、私のシステムでシステム1の前に置かれます(あなたは「lib32が」または単に「LIB」を「lib64に」を変更する必要があります) 。しかし、sys.pathを出力して確認する必要があります。

パッケージをそこにインストールします。ただし、最新のpipバージョンの--userオプションは、すでにそこに配置されているはずです。

リストリゾートとしてsys.pathを操作できます。システムsite-packagesの前にsys.pathにディレクトリを挿入できます。

追加のオプションを渡して、$ HOME/binディレクトリにスクリプトをインストールできます。私は同じ問題を抱えている

pip install --user --install-option="--install-scripts=$HOME/bin" 
+0

すぐに応答していただきありがとうございます。これはPythonパスを示していますが、.localパスはそこにありません。私は知っている、どのようにPythonのパスにピップユーザーのパスを追加する(私はすでに$ PYTHONPATHを変更しようとした) – Norovis

関連する問題