web-dev-qa-db-ja.com

OSXでmatplotlibを仮想環境で機能させる最も簡単な方法は何ですか?

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 を使用して次のオプションを試しました。残念ながら、私は彼らのサイトを調べましたが、それを行う方法を見つけることができませんでした。

17
Charlie Parker

更新:

Python3では、-m venvを介してvirtualenvの組み込み実装を使用できます。

python -m venv <name of virtualenv>
source <name of virtualenv>/bin/activate

Python3の組み込み実装は、Pythonがフレームワークとして設定されるようにvirtualenvを構築するため、機能させるために何も設定する必要はありません。詳細 here


元の回答:

参照するFAQ で述べたように、venv/binframeworkpythonスクリプトを作成する必要があります。システムがframeworkpythonを見つけられないようです。システムにない$PATHであるか、実行可能ではありません。

chmod +x venv/bin/frameworkpython!を使用して、このスクリプトを実行可能にしてください。

から Linux/Unix docs (私は太字を追加しました):

PATHは、Linuxおよびその他のUnixライクなオペレーティングシステムの環境変数であり、実行可能ファイルファイルを検索するディレクトリをシェルに指示します。

システムはonlyを検索します実行可能なPATH環境変数、非実行可能ファイルをスキップします。


frameworkpythonにはPythonのフレームワークビルドが必要なため、matplotlibスクリプトを作成する必要があります。上記のリンクから:

残念ながら、virtualenvは、Pythonのフレームワークビルドから作成された場合でも、非フレームワークビルドを作成します。

ここに別の post があり、フレームワークのビルドの詳細が表示されます

12
Pedro Cattori

Python 2.xを使用している場合は、仮想環境で次のコマンドを使用します。

import matplotlib
matplotlib.use(‘TkAgg’)
import matplotlib.pyplot as plt

これにより、matplotlibは仮想環境でも動作します。

これがお役に立てば幸いです。

5
sufi

あなたのセットアップのように、私はOSXの仮想環境内からmatplotlibを使用しています。

2つの設定が同じではないため、問題を解決するためにかなりの労力を費やしており、これが実際に問題を解決するかどうかはわかりません。ただし、この問題を解決するのに役立つ何かを比較して見つけられるように、私の構成は削除します。

免責事項virtualenvwrapperを使用し、~/.virtualenvs/にvenvを保存しました。

  1. frameworkpythonファイルを~/.virtualenvs/YOUR_VENV/binにコピーします

  2. 正しい場所を参照するには、必ずPATHTOPYTHON bashスクリプト内のframeworkpython変数を変更してください。私のセットアップでは、それを/usr/bin/に変更しました(元の設定は/usr/local/binでした)

  3. 実行可能フラグを設定chmod +x frameworkpython

  4. 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
3
jbndlr

@Gator_Pythonと@ juanpa.arrivillagaの提案を拡張して、最新バージョンの anaconda をインストールすることをお勧めします。これは、仮想環境も処理するクロスプラットフォームのpipのようなパッケージマネージャーです。また、numpypandasmatplotlibのような大きなパッケージもほとんど問題なくインストールされます。

セットアップ:コマンドラインから仮想環境を作成し、そこからインストールします。以下は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の代替は次のとおりです。

3
pylang

Pysideを動作させるには:

brew install cmake

brewはかなり標準的なOSX依存関係です。

あなたはこれがフレームワークの問題であることを特定するのは正しい Python)のフレームワークビルドと非フレームワークビルドの違い これを実行するには、フレームワークpython実行中。

また、Sudoコマンドを理解せずに実行しない方がより正確です。表示はできるが実行できない理由は、環境がSudoとして正しく設定されていないことが原因である可能性があります。 sudoを使用するときに環境変数を保持する方法

which frameworkpythonを実行すると、ファイルシステム上の実行可能ファイルへのパスが表示されます。このファイルのアクセス許可を確認します。特に、所有権を確認します。

ls -l $(which frameworkpython)

which frameworkpythonの出力は、ルートで実行できるパスである必要がありますが、他の依存関係が正しくロードされなかったり、誤った権限が設定されたりする可能性があるため、回避することをお勧めします。後で困ります。

/path/to/frameworkpython krls.py

この問題に遭遇したとき このブログ は素晴らしいリソースでした。

2
Luke Exton
Sudo apt-get install tk-dev libpng-dev libffi-dev dvipng texlive-latex-base

次に、matplotlibをアンインストールして再インストールしました。

pip uninstall matplotlib

pip install matplotlib
0
user3480223

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インストールする以上のことをせずに、常に常に機能します。

0
Charlie Parker