私はこれをMacOS(10.11)で実行しましたが、さまざまなLinuxでも同様の問題が発生しています。私は "公式の" Python3パッケージをインストールしました。それは/Library/Frameworks/Python.framework/Versions/3.4
になります。 (注:下記の例ではPython 3.4を使用していますが、3.5でもこの問題は解決されていますが、管理者権限がないためにPython 3.6を搭載したマシンにアクセスすることはできません)。なぜ `pyvenv`が` python-config`をインストールしないのですか?
私は仮想環境が必要です。私のプロジェクトはPythonとC++のコードが組み合わされているので、Python3がどのライブラリを使用しているか把握するにはスクリプトが必要です。
私はvirtualenv
と仮想環境を設定した場合、すべてが正常である:しかし
$ which virtualenv
/Library/Frameworks/Python.framework/Versions/3.4/bin/virtualenv
$ virtualenv --python=$(which python3) vienv
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/3.4/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
[...blabla...]
Installing setuptools, pip, wheel...done.
$ source vienv/bin/activate
(vienv) $ which python-config
/Users/XXXXX/DEV/STANDALONE/misc/python/vienv/bin/python-config
(vienv) $ python-config --libs
-lpython3.4m -ldl -framework CoreFoundation
、仮想環境でをセットアップするpyvenv
忘れ:つまり
$which pyvenv
/Library/Frameworks/Python.framework/Versions/3.4/bin/pyvenv
$ pyvenv pe
$ source pe/bin/activate
(pe) $ which python-config
/usr/bin/python-config # !!! Here's the problem !!!
(pe) $ python-config --libs
-lpython2.7 -ldl -framework CoreFoundation
、システムのデフォルトのPython2 は私のPATH
のままですが、私は仮想環境を起動しました。
あなたは言うことができます:問題は何ですか? virtualenv
を使用してください。しかし、virtualenv
はpip
経由で余分にインストールする必要があり、これには必ずしも持っていない管理者権限が必要です。 pyvenv
、OTOHは、Python3に付属しています。
また、pip
を使用して仮想環境にをインストールするだけでいいですか?その理由は次のとおりです。
(pe) $ pip install python-config
Requirement already satisfied (use --upgrade to upgrade): python-config in ./pe/lib/python3.4/site-packages
Cleaning up...
はい、パッケージがありますが、スクリプト自体は、仮想環境のbin
サブディレクトリにインストールされていません。
要約:Python3標準モジュール/ツールのみを使用してインストールできるようにプロジェクトを構成したいと思います。virtualenv
などの余分なものには依存しません。
質問:pyvenv
を正しくインストールするための回避策はありますか?いいえ、私はシステム管理者を嫌うことはありません。または、仮想環境でPython3の特定のインストールに対してC++コードをリンクする場合、どのヘッダとライブラリを使用するべきかを判断する別の方法がありますか?
*ただし、virtualenvのはピップを経由して、余分なインストールする必要があり、これは*なぜあなたは、ユーザ・スキームを使用してインストールしていない管理者権限が必要です: '--user'インストールPIP? – Leon
@レーオン:はい、良い提案。しかし、これは後で '〜/ .local/bin'でPATHを更新する必要があります(' pip --user'がそのものをインストールする場所だと思います)。世話をするもう一つの動いている部分。 –