13

自己作成パッケージを置く正規の場所はありますか? 私自身の検索では、バージョンに依存しない純粋な Python パッケージを配置する場所に関するブログ投稿と、 Linux の下の正規の場所に関する SO の質問しか得られませんでしたが、私Windows で作業しています。

私の使用例は、セッションを開始した作業ディレクトリに関係なく、他のサイト パッケージと同じように、IPython セッション中に自分のパッケージをインポートできるようにしたいということです。たとえば、Matlab では、対応するフォルダーは単純にC:/Users/ojdo/Documents/MATLAB.

import mypackage as mp
mp.awesomefunction()
...
4

4 に答える 4

9

2 つの 追加リンクのおかげで、質問に対する意図した回答だけでなく、さらに気に入った解決策も見つかりました。皮肉なことに、最初の検索結果でも説明されていましたが、すべてのバージョンによって難読化されていました。 )依存サイトパッケージ用語。

元の質問への回答: デフォルト フォルダ

自分で作成したパッケージの標準的な (「デフォルト」のような) 場所があるかどうかを知りたかったのです。そしてそれは存在します:

>>> import site
>>> site.USER_SITE
'C:\\Users\\ojdo\\AppData\\Roaming\\Python\\Python27\\site-packages'

Linux と Python 3 の例:

ojdo@ubuntu:~$ python3
>>> import site
>>> site.USER_SITE
'/home/ojdo/.local/lib/python3.6/site-packages'

ユーザースキームパッケージのインストールに関するドキュメントには、フォルダーUSER_SITEが存在する場合は、インタープリターの起動時に自動的に Python に追加され、sys.path手動の手順は不要であると記載されています。


おまけ: 独自のパッケージ用のカスタム ディレクトリ

  1. ディレクトリを任意の場所に作成しますC:\Users\ojdo\Documents\Python\Libs
  2. sitecustomize.pyこのファイルを Python インストールの site-packages フォルダー (つまり、C:\Python27\Lib\site-packages(すべてのユーザーの場合) または(1 人のユーザーの場合))に追加しますsite.USER_SITE
  3. このファイルには、次のコードが入力されます。

    import site
    site.addsitedir(r'C:\Users\ojdo\Documents\Python\Libs')
    
  4. ほら、新しいディレクトリがsys.pathすべての (I)Python セッションで自動的に追加されるようになりました。

仕組み: Python を起動するたびに自動的にインポートされるPackage sitesitecustomizeも、カスタム パッケージ パスを変更するためにパッケージをインポートしようとします。この場合、このダミー パッケージは、個人用パッケージ フォルダーを Python パスに追加するスクリプトで構成されます。

于 2013-07-23T13:09:53.987 に答える