PyCharm に、Python環境/usr/bin/python
を追加しました。しかしながら、
from gnuradio import gr
未定義の参照 として失敗します。ただし、Pythonインタプリタではコマンドラインからはうまく機能します。
GNURadioはPycharmの外ではpythonとうまく働きます。すべてがインストールされ、私がそれを望むように構成されています。
Gnuradioは/usr/local/lib/python2.7/site-packages/gnuradio
にあります。
また:
PYTHONPATH =/usr/local/lib/python2.7/site-packages:/usr/local/lib/python2.7/site-packages/gnuradio
ファイル→設定→プロジェクト設定→プロジェクトインタプリタに移動します。
その後、インタプリタの設定を押して、[パス]タブに移動します。
パス領域の+ボタンを押します。認識したいモジュールへのパスを設定できます。
モジュールをインポートできるpythonインタプリタを開きます。
>> import gnuradio
>> gnuradio.__file__
"path/to/gnuradio"
ほとんどの場合、このようなフォルダ構造になります。
foobarbaz/
gnuradio/
__init__.py
other_file.py
ここにfoobarbazをパスに追加します。
環境変数またはsys.path
を使用して、パスを直接変更する必要は決してありません。 os(例えばapt-get
)を使用するか、virtualenvでpip
を使用するかにかかわらず、パッケージはすでにパス上にある場所にインストールされます。
この例では、GNU RadioがシステムPython 2の標準のsite-packages
の場所にインストールされています。これはすでにパスに含まれています。 PyCharmを正しいインタプリタに向けるだけで十分です。そうでない場合、明らかではない何か他の問題があります。 GNU Radioがインストールされているのと同じインタプリタを/usr/bin/python
が指していない可能性があります。特にpython2.7
バイナリをポイントしてみてください。あるいは、PyCharmはパッケージを検出するのがやや悪いのです。 File > Invalidate Caches > Invalidate and Restart
は再スキャンを指示します。
この回答では、プロジェクト環境の設定方法、さまざまなシナリオでのパッケージのインストール方法、そしてPyCharmの設定方法について説明します。私は公式のPythonパッケージ化ツールを管理している同じグループによって書かれた Python Packaging User Guide を何度も参照しています。
Pythonアプリケーションを開発する正しい方法はvirtualenvを使うことです。 パッケージおよびバージョンは、システムまたは他のプロジェクトに影響を与えずにインストールされます。 PyCharmはvirtualenvを作成してパッケージをインストールするための組み込みインターフェースを持っています。 または、コマンドラインから作成してからPyCharmに指示することもできます。
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
PyCharmプロジェクトでFile > Settings > Project > Project Interpreter
に行きます。 virtualenvwrapper
またはPyCharmを使って環境変数を作成した場合は、メニューに表示されます。そうでない場合は、装備をクリックし、Add Local
を選択して、envでPythonバイナリを見つけます。 PyCharmは選択された環境にある全てのパッケージを表示します。
GNU Radioのような場合によっては、pip
を使ってインストールするパッケージがなく、残りのGNU Radioをインストールするときにシステム全体にインストールされていました(例:apt-get install gnuradio
)。 )この場合でも、virtualenvを使用する必要がありますが、このシステムパッケージを認識させる必要があります。
$ python2 -m virtualenv --system-site-packages env
残念ながら、これは少し面倒です。すべてのシステムパッケージが環境に表示されるようになりますが、それらは単なるリンクにすぎず、システムに影響を与えずにパッケージを安全にインストールまたはアップグレードできます。
場合によっては、開発中のローカルパッケージが複数あり、一方のプロジェクトでもう一方のパッケージを使用したいことがあります。この場合、他のプロジェクトのパスにローカルパッケージを追加する必要があると思うかもしれませんが、そうではありません。あなたのパッケージは 開発モード でインストールするべきです。これが必要とするのは あなたのパッケージにsetup.py
ファイルを追加することだけです は後でパッケージを適切に配布しデプロイするためにとにかく必要とされます。
あなたの最初のプロジェクトのための最小限のsetup.py
:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
それから2番目のプロジェクトの環境にインストールします。
$ pip install -e /path/to/first/project
私にとっては、ディレクトリをソースルートとしてマークするだけの問題でした。
私のバージョンはPyCharm Professional edition 3.4であり、 パスの追加 の部分は異なります。
あなたは "Preferences" - > "Project Interpreter"に行くことができます。右上隅にあるツールボタンを選択してください。
次に、[More ...] - > [選択したインタプリタのパスを表示] - > [Add]を選択します。それからあなたはパスを追加することができます。
PyCharm Community Edition 2016.3.2の場合:
「プロジェクトインタプリタ」 - >右上の設定アイコン - >「その他」。
それから右側にパッケージアイコンがあるはずです。その上にカーソルを置くと、「選択したインタプリタのパスを表示」と表示されます。クリックして。
次に、[追加]ボタンをクリックするか、[alt + insert]を押して新しいパスを追加します。
私はPyCharm(2018.3.4 CEを使用)とPythonに慣れていないので、system-site-packagesに入っていることがわかっているPIL(Pillow)パッケージにアクセスするために、上記の提案のそれぞれに従うようにしました。どれもうまくいきませんでした。プロジェクトエクスプローラウィンドウで、プロジェクトの下にあるvenv/pyvenv.cfgファイルに気付いたのですが、夜はあきらめようとしていました。そのファイルに "include-system-site-packages = false"という行があるので、それを "true"に変更しました。問題が解決しました。
プロジェクトエクスプローラで、モジュールが含まれているフォルダを右クリックして「ソース」として設定できます。
それは他の項目と同様にコード補完のためにインデックスで解析されます。
簡単で汚い解決策として、これは私のために働いた:問題のあるインポートの前にこの2行を追加する:
import sys
sys.path.append('C:\\Python27\\Lib\site-packages')
インタプリタパスを変更しないでください。
代わりにプロジェクト構造を変更してください。
「ファイル」 - >「設定」 - >「プロジェクト」 - >「プロジェクト構造」 - >「コンテンツ・ルートの追加」
Anacondaをダウンロードする https://anaconda.org/ /
アナコンダのインストールが完了しました...
「設定」 - >「プロジェクト設定」 - >「プロジェクトインタプリタ」に進みます。
次に「パス」タブに移動して/ anaconda/bin/pythonを検索します。
適用をクリック