2017-03-29 4 views
2

ローカルユーザー用にインストールされた32ビットのanacondaをインストールしたWindows 7マシンがあります。インストールは正常に動作します:コマンドライン、スイッチ環境などからpythonとpipを実行することができます。特権を持たないAnacondaのWindowsでPYTHONPATHを設定する

私はMy Documentsに座って書いたコードライブラリを持っています。 PYTHONPATHC:\Users\username\Documents\MyLibのようなエントリを追加したいと思います。これは通常問題ではありませんが、この(作業発行された)コンピュータがWindows UIを通じて環境変数を変更するために必要な昇格された権限を持っていません。

私はPYTHONPATHを設定する方法を探しています。私は、それがアナコダ環境内で動作する必要があります(つまり、そのインタープリタを使用してライブラリをインポートしたいだけです)。スクリプト内でsys.path.appendを使用しているソリューションは受け入れられません。私は、python myscript.pyを実行するたびに自動的に実行されるいくつかのスクリプトでsys.path.appendを実行するとOKです。

私はconda info -aを実行すると、アナコンダインストーラがC:\Users\username\AppData\Local\Continuum\Anaconda3\Library\bin;...、具体的には、PATHにアイテムを挿入することができたことを示しているので、しかしWindowsのUIを通じて課さ権限の制限を回避する方法があると思われます。

+0

私は、ユーザーアカウントを通過し、何が起こるか見てみます。そのチップをありがとう。バッチスクリプトを使用する限り、Pythonコードが実行される前に自動的に実行される方法はわかりません。 @eryksun。 –

+0

'cmd.exe' –

+0

私はあなたの質問に誤解しました。私はcmdとspyderの両方を主に使用しますが、IPythonとbashも使用します。しかし、あなたのソリューションは完全に機能しています。あなたはそれに基づいて答えを書くことができますか(おそらく将来の読者のためのcmdのための置き換えを書くことについての情報を含んでいます)? –

答えて

2

ユーザーアカウントを変更するためのコントロールパネルウィンドウには、現在のユーザーだけの環境変数を変更するオプションが必要です。それはWindowsのいくつかのバージョンで壊れていますが、それが動作する場合、それは最も簡単なオプションです。

これでうまくいかない場合、次に簡単なオプションは、コマンドプロンプトでsetx.exeを使用することです。デフォルトは現在のユーザーです。例:

setx.exe PYTHONPATH "C:\Users\username\Documents\MyLib" 

reg.exeを使用して、変数を手動でレジストリに設定することもできます。しかし、上記のオプションとは異なり、これはトップレベルのウィンドウにメッセージWM_SETTINGCHANGEをブロードキャストしません。 Explorerがそのメッセージを見ると、環境をレジストリからリロードします。これがなければ、更新した環境変数を表示するには、ログオフしてから再度オンにする必要があります。ことで、ここでの例のコマンドは、reg.exeを使用します:

reg.exe add HKCU\Environment /f /v PYTHONPATH /d "C:\Users\username\Documents\MyLib" 

同じ変数はPythonのすべてのバージョンで使用されますので、私は永久にPYTHONPATH設定のファンではありません。むしろ、特定のタスクに必要な方法で環境を設定するバッチスクリプトへのショートカットを作成したいと思います。例:

@echo off 
set PYTHONPATH=C:\Users\username\Documents\MyLib 
C:\Users\username\Documents\MyEnv\Scripts\activate.bat 

このバッチスクリプトへのショートカットを作成します。ショートカットを右クリックし、[プロパティ]を選択します。 cmd.exe /k "path\to\the\script.bat"を実行するようにターゲットを変更します。

+0

通常、私は環境変数の設定についてあなたに同意しますが、この特定のラボマシンでは、すべてがPython 3の1つのインタプリタで実行されます。異なるライブラリ設定の環境が必要な場合でも、Py2の使用を開始することはまずありません。 –

2

あなたはほとんどスパイダーを使用して、言ったので、次のことが役に立つかもしれない:

スパイダーは、統合マネージャを介してPYTHONPATHを管理するためのオプションを提供しています。

enter image description here

関連する問題