matplotlib
が仮想環境に問題があることを発見しました。 FAQs で解決策を試しましたが、うまくいきませんでした。理想的な解決策はpip
コマンドのみを含むべきですが、それを要求するのは困難または非現実的かもしれません。とにかく、私は彼らがOS Xセクションで持っていたものを試し、framework
フォルダーにvenv
bashファイルを作成し、それを介してコマンドを実行しました。
$ frameworkpython krls.py
私がそれをしたとき、私は許可拒否エラーを受け取りました:
Permission denied
私はコマンドをsudoingするのがちょっと怖いのですが、コマンドの動作が100%ではありません...とにかく、bashスクリプトはあまり危険なことをしていないように見えたので、それをSudoで編集しました。しかし、私の端末の応答は奇妙でした、とそれは言いました:
Sudo frameworkpython krsl.py
Sudo: frameworkpython: command not found
つまり、frameworkpython
をコマンドとして認識しません。須藤なしでそれは言う:
frameworkpython krsl.py -bash:/ Users/my_name/path/venv/bin/frameworkpython:権限が拒否されました
これは、frameworkpythonをコマンド(?)として認識しているようですが、権限が原因で実行されませんでした。私には奇妙に思えます。誰かアイデアはありますか?
私も試しました:
$ pip install TKAgg
Collecting TKAgg
Could not find a version that satisfies the requirement TKAgg (from versions: )
No matching distribution found for TKAgg
しかし、それはうまくいきませんでした。
だから私はPySideを使用している次のオプションを試しましたが、これも機能せず、巨大なエラー出力を出しました:
$ pip install pyside
Collecting pyside
Using cached PySide-1.2.4.tar.gz
Building wheels for collected packages: pyside
Running setup.py bdist_wheel for pyside ... error
Complete output from command /Users/my_name/path/venv/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/tmpUR9qFCpip-wheel- --python-tag cp27:
Removing /private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/pyside_package
running bdist_wheel
running build
Python architecture is 64bit
error: Failed to find cmake. Please specify the path to cmake with --cmake parameter.
----------------------------------------
Failed building wheel for pyside
Running setup.py clean for pyside
Failed to build pyside
Installing collected packages: pyside
Running setup.py install for pyside ... error
Complete output from command /Users/my_name/path/venv/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-UVA_F4-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/my_name/path/venv/bin/../include/site/python2.7/pyside:
Removing /private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/pyside_package
running install
running build
Python architecture is 64bit
error: Failed to find cmake. Please specify the path to cmake with --cmake parameter.
----------------------------------------
Command "/Users/my_name/path/venv/bin/python2.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-UVA_F4-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/my_name/path/venv/bin/../include/site/python2.7/pyside" failed with error code 1 in /private/var/folders/nr/rxlk6w192hx8r74813yg6r500000gn/T/pip-build-_yzDki/pyside/
その後、私は WX Phonix を使用して次のオプションを試しました。残念ながら、私は彼らのサイトを調べましたが、それを行う方法を見つけることができませんでした。
更新:
Python3では、-m venv
を介してvirtualenv
の組み込み実装を使用できます。
python -m venv <name of virtualenv>
source <name of virtualenv>/bin/activate
Python3の組み込み実装は、Pythonがフレームワークとして設定されるようにvirtualenvを構築するため、機能させるために何も設定する必要はありません。詳細 here 。
元の回答:
参照するFAQ で述べたように、venv/bin
にframeworkpython
スクリプトを作成する必要があります。システムがframeworkpython
を見つけられないようです。システムにない$PATH
であるか、実行可能ではありません。
chmod +x venv/bin/frameworkpython
!を使用して、このスクリプトを実行可能にしてください。
から Linux/Unix docs (私は太字を追加しました):
PATHは、Linuxおよびその他のUnixライクなオペレーティングシステムの環境変数であり、実行可能ファイルファイルを検索するディレクトリをシェルに指示します。
システムはonlyを検索します実行可能なPATH
環境変数、非実行可能ファイルをスキップします。
frameworkpython
にはPythonのフレームワークビルドが必要なため、matplotlib
スクリプトを作成する必要があります。上記のリンクから:
残念ながら、virtualenvは、Pythonのフレームワークビルドから作成された場合でも、非フレームワークビルドを作成します。
ここに別の post があり、フレームワークのビルドの詳細が表示されます
Python 2.xを使用している場合は、仮想環境で次のコマンドを使用します。
import matplotlib
matplotlib.use(‘TkAgg’)
import matplotlib.pyplot as plt
これにより、matplotlibは仮想環境でも動作します。
これがお役に立てば幸いです。
あなたのセットアップのように、私はOSXの仮想環境内からmatplotlib
を使用しています。
2つの設定が同じではないため、問題を解決するためにかなりの労力を費やしており、これが実際に問題を解決するかどうかはわかりません。ただし、この問題を解決するのに役立つ何かを比較して見つけられるように、私の構成は削除します。
免責事項:virtualenvwrapper
を使用し、~/.virtualenvs/
にvenvを保存しました。
frameworkpython
ファイルを~/.virtualenvs/YOUR_VENV/bin
にコピーします
正しい場所を参照するには、必ずPATHTOPYTHON
bashスクリプト内のframeworkpython
変数を変更してください。私のセットアップでは、それを/usr/bin/
に変更しました(元の設定は/usr/local/bin
でした)
実行可能フラグを設定chmod +x frameworkpython
Virtualenvwrapperを使用して仮想環境に切り替えた後、通常どおりpip
を使用してlibsをインストールします:workon YOUR_VENV
frameworkpython
を通常のユーザー(ルートなし、pls!)としてソーシングし、matplotlib
をインポートすると、次のようになります。
$ ./frameworkpython
Python 2.7.0 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib as mpl
>>> mpl.__version__
'1.5.1'
>>> import matplotlib.pyplot as plt
>>> ^D
@Gator_Pythonと@ juanpa.arrivillagaの提案を拡張して、最新バージョンの anaconda をインストールすることをお勧めします。これは、仮想環境も処理するクロスプラットフォームのpipのようなパッケージマネージャーです。また、numpy
、pandas
、matplotlib
のような大きなパッケージもほとんど問題なくインストールされます。
セットアップ:コマンドラインから仮想環境を作成し、そこからインストールします。以下はcondaの設定方法の例です(適切な環境名とpythonバージョン番号をそれぞれ置き換えてください):
conda update conda
conda update anaconda
conda create -n <envname> python=<version> matplotlib
source activate <envname>
conda info --envs # show current env
conda list # see installed env packages
これにより、隔離されたクリーンな環境に配置されます。この環境にインストールされているパッケージの最小限のリストを確認できます。 pip
およびsetuptools
がリストされていることを確認します(これらは自動的にインストールされます)。その他の必要なパッケージについては、conda install <package>
またはpip install <package>
をこの順序で使用します。プロジェクトをインストールします。
cd <path\to\project>
python setup.py develop
削除:環境を削除する準備ができたら:
source deactivate
conda env remove -n <envname>
注:setup.py develop
の代替は次のとおりです。
Pysideを動作させるには:
brew install cmake
brewはかなり標準的なOSX依存関係です。
あなたはこれがフレームワークの問題であることを特定するのは正しい Python)のフレームワークビルドと非フレームワークビルドの違い これを実行するには、フレームワークpython実行中。
また、Sudoコマンドを理解せずに実行しない方がより正確です。表示はできるが実行できない理由は、環境がSudoとして正しく設定されていないことが原因である可能性があります。 sudoを使用するときに環境変数を保持する方法
which frameworkpython
を実行すると、ファイルシステム上の実行可能ファイルへのパスが表示されます。このファイルのアクセス許可を確認します。特に、所有権を確認します。
ls -l $(which frameworkpython)
which frameworkpython
の出力は、ルートで実行できるパスである必要がありますが、他の依存関係が正しくロードされなかったり、誤った権限が設定されたりする可能性があるため、回避することをお勧めします。後で困ります。
/path/to/frameworkpython krls.py
この問題に遭遇したとき このブログ は素晴らしいリソースでした。
Sudo apt-get install tk-dev libpng-dev libffi-dev dvipng texlive-latex-base
次に、matplotlibをアンインストールして再インストールしました。
pip uninstall matplotlib
pip install matplotlib
Pedro Cattoriの答えをエコーするには、私にとって毎回うまくいっている最も簡単な方法は、次のように仮想環境でpython 3を使用することです。
python -m venv my-virtualenv
source my-virtualenv/bin/activate
または
python3 -m venv my-virtualenv
source my-virtualenv/bin/activate
元のFAQページ: http://matplotlib.org/faq/osx_framework.html#osxframework-faq
私が試した他のすべては、何が問題なのかを理解するのに費やされるとんでもない量のコードと時間をもたらしました。それにより、私はmatplotlibをpipインストールする以上のことをせずに、常に常に機能します。