101

私はPythonで独自のパッケージを持っていて、それを頻繁に使用しています。PYTHONPATH や sys.path を操作せずにパッケージをインポートできるように、パッケージを配置する必要がある最も洗練された、または従来のディレクトリは何ですか?

たとえば、サイトパッケージはどうですか? /usr/lib/python2.7/site-packages.
そこにパッケージをコピーして貼り付けるのはpythonで一般的ですか?

4

6 に答える 6

69

私は通常、インポートする準備ができているものをユーザー サイト ディレクトリに置きます。

~/.local/lib/pythonX.X/site-packages

プラットフォームに適したディレクトリを表示するには、次を使用できますpython -m site --user-site


編集:sys.path作成すると表示されます:

mkdir -p "`python -m site --user-site`"
于 2013-04-24T15:44:21.087 に答える
29

したがって、私のような初心者で、ディレクトリがあまり整理されていない場合は、この方法を試してください。

Python ターミナルを開きます。私の場合は numpy など、動作することがわかっているモジュールをインポートして、次の手順を実行します。 Import numpy

numpy.__file__

その結果、

'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages/numpy/__init__.py'

の結果numpy.__file__は、モジュールとともにpythonファイルを配置する必要がある場所です(を除くnumpy/__init__.py)ので、私にとっては

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages

これを行うには、端末に移動して入力するだけです

mv "location of your module" "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site- packages"

これで、モジュールをインポートできるはずです。

于 2015-06-29T06:21:53.930 に答える
8

This is something that works for me (I have to frequently create python packages that are uploaded to a private pip repository). elaborating on the comment by @joran on the question.

  1. create a "build directory" which is used as a workspace to create packages. any directory of your choice will do
  2. Copy your python package dir there, and create a setup.py file. this should help in creating the setup.py correctly.
  3. create a virtualenv for the project you are working on. virtualenvs have a bunch of other benefits, I am not going into the details here.
  4. create a local dist package python setup.py sdist --format=tar. the package created should ideally be in the dist folder.
  5. Install the package on your virtualenv (after activating it). pip install <yourpackage>.tar

you can use pip install --force-reinstall if you need to play around with the libraries more and re-create the dist packages.

I've found that this method works great for me. If you do not need to package the modules for use of other systems instead of just your local, this method might be an overkill

Happy hacking.

于 2015-06-29T06:39:45.557 に答える
1

私のMacでは、sudo find / -name "site-packages". 、、、など/Library/Python/2.6/site-packagesのいくつかのパスが表示されました。/Library/Python/2.7/site-packages/opt/X11/lib/python2.6/site-packages

そのため、v2.7 または v2.6 を使用している場合、モジュールを配置する場所はわかっていました。

それが役に立てば幸い。

于 2016-06-28T14:48:10.013 に答える