2016-05-03 7 views
7

conda installを使用してパッケージをインストールする方法と、manualに記載されているPyPiにあるパッケージをビルドする方法も知っています。Anaconda:PYTHONPATHのような外部パッケージを永久にインクルードする

しかし、どのようにパッケージ/フォルダをAnacondaに永久に含めることができますか?私が現在取り組んでいるコードですか?

私の現在のアプローチはsysを使用することです:

import sys 
sys.path.append(r'/path/to/my/package') 

本当に便利されていません。

ヒント

ありがとうございます!

答えて

10

私はAnaconda forumに私の質問に2つの答えを見つけました:

1)のsite-packages、sys.pathに常にある、すなわちディレクトリ$HOME/path/to/anaconda/lib/pythonX.X/site-packagesににモジュールを入れてください。これは、シンボリックリンクを作成することによっても機能するはずです。

2. .pthファイルを$HOME/path/to/anaconda/lib/pythonX.X/site-packagesに追加します。これは何でもいい(ちょうど.pthで終わらなければならない)。 A .pthファイルは、Pythonの起動時にパスに追加されるディレクトリのフルパス名の改行で区切られたリストです。

どちらも簡単に機能し、より柔軟なので、2番目のオプションに行った。

ありがとうございました!

2

好ましい解決方法は、独自のコンドパッケージ(情報here)を作成することです。

もう1つの解決策は、パッケージディレクトリとsys.pathの任意のディレクトリとの間にリンクを作成することです。このように、pythonにパッケージのインポートを依頼すると、anacondaはさまざまなsys.pathディレクトリを検索し、そのパッケージがsys.pathディレクトリの1つにあるかのようにパッケージへのリンクを読み込みます。

ln(link_name)コマンドを使用すると、簡単にディレクトリをリンクできます。例:

ln -s /path/to/my/package /path/to/anaconda/lib/python2.7/site-packages/ 

上記のリンクを使用すると、任意のディレクトリからanacondaのデフォルト環境でパッケージをインポートできます。これは他の環境には影響しません。

ln -s /path/to/my/package /path/to/anaconda/env/myenv/lib/python2.7/site-packges/ 

次の点に注意してください: - あなたは、特定の環境(例えば「myenv」)にパッケージを追加したい場合は

はアナコンダの中には、その特定の環境のSYSパスの1つにパッケージをリンクすることができます。

  • 実際にパッケージディレクトリをsysパスに移動するのではなく、パッケージディレクトリをsysパスにリンクすると、選択したディレクトリにパッケージを保存できます。
  • -sフラグは、(ショートカットのような)ソフトリンクを生成します。パッケージディレクトリを移動すると、リンクは機能しません。 を-sフラグなしで実行すると、パッケージディレクトリの移動(または削除など)の影響を受けないハードリンク(ミラーコピーなど)が生成されます。ソフトリンクとハードリンクの賛否両論が議論されていますhere

  • Windowsユーザーはmklinkを利用する必要があります。詳細については、hereをご覧ください。

関連する問題