Python-virtualenvを使用してパッケージを手動でインストールする


84

virtualenvにインストールしたいPythonプログラムがあります-これはzipパッケージであり、解凍してからsetup.pyプログラムを実行する必要があります-しかし、私の質問は、これらの解凍されたファイルをvirtualenvに入れてパッケージを作成する方法に関するものですvirtualenvのsite-packagesフォルダーにインストールされますか?

を使用してvirtualenv内からインストールすることもできますpip install <package name>が、何らかの理由で、PIPがダウンロードするパッケージが古くなっています。

だから-誰かがパッケージを手動でインストールするためのいくつかの簡単な手順を教えてもらえますか?

これまでのところ、Virtualenvをロードするための基本的なコマンドがあります。

-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??

つまり、Pythonパッケージ/プログラムをどこに解凍するかは重要ですか?それとも、解凍する前にまずvirtualenvにログインする必要がありますか?virtualenvをロードし、「workon test」コマンドで使用していると、インストールするPythonパッケージは、見つけたディレクトリに関係なく、適切なvirtualenvのsite-packagesフォルダーにインストールされますか?

オプション1は、Pythonプログラムを/ home / username / tmpに解凍します-次にvirtualenvにログインし、そのフォルダーに移動してsetup.pyプログラムを実行します-virtualenvがすべての関連ファイルを独自のsite-packagesフォルダーに転送すると仮定します。

またはシナリオ2は、ファイルをサイトパッケージに直接解凍し、そこから(virtualenvにログインした後)実行することです。

これでPythonclutzを助けてくれてありがとう!

回答:


123

私は通常、プログラムを一時フォルダーに抽出し、そのフォルダーから、virtualenvpythonインスタンスへの直接パスを使用してsetup.pyを実行します。たとえば、virtualenvが/ home / username / virtualpyにある場合は、これを使用します(一時フォルダーから)

/home/username/virtualpy/bin/python setup.py install

これにより、virtualenvサイトのパッケージフォルダーにインストールされます。


2
したがって、実際のインポート操作は、virtualenvにインストールされているバージョンのpython(2.6)を使用してpythonを実行することです...いいですね!Dwelchに感謝します。
ジャミソン

必ず一時フォルダから実行してください。setup.pyは、それが現在のフォルダーであると想定する可能性があります。
セス

これはもう必要ないようです。仮想環境がアクティブ化されたら、python setup.py installまたはpython setup.py developを実行するだけで、適切な場所にインストールされます。
オリバー

13

仮想環境に切り替えるとうまくいきます。入力する必要があります

which python

仮想環境が存在するパスが返される場合は、このコマンドを直接実行できます。

$ python setup.py build
$ python setup.py install

しかし、それがあなたのvirtualenv'sパスではないグローバルレベルのパスを与える場合は、使用してみてください

$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install

0

パッケージがリポジトリからインストールされない場合は、sudoを使用してvenvで試してください。Pythonpathosパッケージの例として;

/venv3.6/bin$ sudo pip3 install pathos

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.