問題タブ [pythonpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - PyCharm は Python のインポートロジックを変更する方法と理由は?
WindowsにPyCharm 1.2.1があります。同じプロジェクトのさまざまなブランチを編集する必要があります-ディスク上のさまざまなフォルダーにあるため、やや重いブランチ-c:\apps\alpha
とc:\apps\beta
. そのようなフォルダーごとに、PYTHONPATH 変数を調整して、プロジェクト ルート フォルダー ( c:\alpha\vendor
、...) 内のどこかに存在する適切なベンダー ライブラリを指すようにする必要があります。PyCharmを起動する前に必要なPYTHONPATH変数値を設定するcmdバッチファイルからPyCharmを起動することで、この問題を回避することができました(したがって、ディレクトリPyCharm.cmd
内alpha
とディレクトリPyCharm.cmd
内にありますbeta
)。
問題:フォルダーを編集するために PyCharm を開くとbeta
、import
ステートメントはフォルダーからモジュールをインポートしalpha
ます! python.exe
コマンドラインからインタープリターを起動すると、すべてが期待どおりに機能します-問題はPyCharm のみにあるようです。
2 番目の奇妙な調査: print sys.path
PyCharm と外部の python.exe インタープリターからコードを実行すると、異なる結果が得られます。PyCharm からは、私の PYTHONPATH モジュールが表示されません。私は Python と PyCharm の初心者ですが、この動作は非常に奇妙で一貫性がないように見えます。
最後に、この問題を解決できるように見える PyCharm IDE の設定をいくつか見つけましたFile -> Settings -> Python Interpreter
。alpha
そこで、とbeta
フォルダーの両方のすべてのパスを見つけました。このパス リストをクリアする方法はなく、一部の要素を無効にするだけです。alpha
しかし、無効にすることはややばかげています.編集またはbeta
「ソリューションフォルダー」のたびに、個別に無効/再度有効にする必要があります。
最後の質問: PyCharm を使用して個別のプロジェクト (フォルダー) を編集し、PyCharm が間違った場所からモジュールをインポートしないようにするにはどうすればよいでしょうか?
python - djangoインポートエラー - core.managementという名前のモジュールがありません
わかりました、これらのエラーがたくさん見られます。私はできることをすべて試しましたが、まだこれを理解していません。
Python 2.5 と Django 1.3 を実行している開発サーバーで作業しています。Django 1.3 は、ダウンロードした tar.gz を解凍した後、python setup.py install を使用してインストールされました。
すべて正常に動作します。実行する必要はほとんどありませんがmanage.py
、新しい staticfiles アプリを使用しようとして問題が発生しています。
わかりましたので、PATH
問題があります。
Django のインストールから、自分のsite-packages
ディレクトリを再確認します。
OK、私が持っているものをチェックしましょう。echo $PYTHON_PATH が空だったので、設定しました
まだ運がありません。sys.path の内容を確認してみましょう
パスはそこにあります。コンテンツを含む /usr/lib/python2.5/site-packages/django.pth も作成しました
ここで何が起こっているかの手がかりを得た人はいますか?
途中で邪魔になっていたシンボリックリンクを見つけましたが、新しいエラーにはなりませんでした。
また、新しいプロジェクトを作成して、そこに問題があるかどうかを確認し、同じ utils.version エラーを取得しようとしました。
サイド ノード: #django の Unode が少し役に立ちました。同じマシンに virtualenv をセットアップしてエラーを回避したので、実際のインストールで何が起きているのかまだわかりませんが、django プロジェクトではなく django にあるようです。 /python インストール。
python - Python setup.py install が間違った Python インストール パスを使用している
私は、python2.6の「初歩的な」インストールがあるbluehost-serverを使用しています。これまでのところ正常に動作するユーザーディレクトリにpython2.6をインストールしましたが、「setup.py install」、「easy_install」、または「pip install」でpythonパッケージをインストール
error: invalid Python installation: unable to open /usr/lib/python2.6/config/Makefile (No such file or directory)
しようとすると、次のようになります。この Makefile を持たないシステム全体のインストール。また、 --prefix または --user 引数を使用しても役に立ちません。
ユーザーディレクトリで python-installation を使用するように pip または easy_install に指示するにはどうすればよいですか?
bash - ディレクトリを Python パスに追加できません
私の .bashrc に以下を追加しました:
export PYTHONPATH=$PYTHONPATH:/home/tbao/src/Cython-0.14.1
再ログインすると、次のエラーが表示されます。
-bash: /home/tbao/src/Cython-0.14.1: ディレクトリです
ディレクトリを pythonpath に追加したいのですが、できません。私は何を間違っていますか?
python - サイトパッケージ外のバージョン管理されたパッケージ名に関する PYTHONPATH の問題
ここでパッケージ管理の問題を解決しようPYTHONPATH
として、site-packages ディレクトリの外部にあるパッケージにアクセスするために使用している方法に問題がある可能性があることを知りました。
wxPython
バージョン管理されたディレクトリ フォルダ名 (つまりwx-2.8-msw-unicode
) からパッケージ (たとえば ) からモジュールをインポートしようとすると、そのディレクトリが python site-packages ディレクトリにない場合、インポート エラーが発生します。
問題を再現するには: python ディレクトリの外にディレクトリを作成しますC:\foo
。をダウンロードwxPython
し、そのディレクトリに配置します ( を指定C:\foo\wx-2.8-msw-unicode
)。必要に応じてさらに追加します。C:\foo
ディレクトリをPYTHONPATH
環境変数に追加します。新しい python インタラクティブ シェルを開いて実行します。
パスがそこにあることを確認するには (それは)、次に
インポート エラーが表示されます。私は何を間違っていますか?この動作は正しいですか?
python - Python2のsys.pathはWindowsでどのくらい正確に設定されていますか?
Python のドキュメントには、sys.path
「環境変数から初期化されPYTHONPATH
、さらにインストールに依存するデフォルト」であると記載されています。
しかし、Windowsの「インストールに依存するデフォルト」とは正確には何ですか?
(これはおそらくpythonのコンパイル方法に依存していることはわかっていますが、もし私が持っているのがバイナリしかない場合、デフォルトがどのようにsys.path
構築されているかを理解する方法はありますか?)
明確化: 私は「私のものは何sys.path
ですか?」と尋ねているのではありません。「Python はどのように sys.path を構築するのですか?」ドキュメンテーションによると、これsys.path
はsys.path[0]
スクリプトの現在のディレクトリに加えて、Python がPYTHONPATH
環境変数で見つけたものと、インストールに依存するいくつかのブードゥー教で構成されています。では、この神秘的なブードゥー教の部分は何ですか?
python - PyDevはプロジェクトソースフォルダーでモジュールを見つけることができません
さて、これは私がこの問題を抱えたのは初めてではありませんが、それは本当に今回私を端に追いやった。問題はこれです。LinuxとWindowsで何かを開発していて、ドロップボックスを介してワークスペースを共有し、インタープリターを切り替えています。時折、プロジェクトは実行可能でなくなります。私が得るエラーは次のとおりです。
興味深いことに、NetworkNamingGame\srcはプロジェクトのソースフォルダーです。そして、naminggameはそこにある唯一のパッケージです。パッケージエクスプローラーはそれをパッケージとして正常に認識し、関連するアイコンを表示します。
これは、ソースフォルダーのパスの変更が原因である可能性があることを認識しています(相対パスだと思いましたが)。そのため、プロジェクトのソースフォルダーを削除して、ソースフォルダーのリストに読み取り、「内部情報の強制復元」、クリーニングを繰り返しました。プロジェクト、PyDev構成を削除し、上記のすべてを再試行しますが、運がありません。PyDevによって実行されるpythonインタープリターコマンドを確認すると、ソースフォルダーがPYTHONPATHにないことがわかります。私が見つけた唯一の解決策は、すべてを新しいプロジェクトにインポートすることです。あなたが私に尋ねるなら、あまり良い解決策ではありません。
これが外部フォルダである場合、私は適度に腹を立てるだけですが、それはすぐそこにあります!これは、私の構成で確認する必要がある最初で唯一のフォルダーです。これが発生する理由と、すべてを最初から開始せずに修正する方法についてのアイデアはありますか?
バージョンビット:
Eclipse SDK
バージョン:3.6.1
ビルドID:M20100909-0800
PyDev
バージョン:1.6.5.2011020317
そして、リクエストに応じて、naminggameフォルダの内容:
python - アプリケーション固有のPYTHONPATH
パッケージの階層を持つアプリケーションがあります。パッケージ階層の上位にある他のモジュールを参照するモジュールはかなりの数あります。以下に例示するように、相対インポートを使用してこの問題を解決できます。ただし、テストのためにモジュールを直接実行すると、Attempted relative import in non-package
例外が発生して失敗します。
モジュールをテスト用に個別に実行し、他のモジュールからインポートできるように、アプリケーションまたはインポートステートメントを整理するためのより良い方法はありますか?
例
base.py
child.py
user.py
既存のソリューション
階層の上位にあるモジュールを参照する必要があるモジュールの先頭に、次のヘッダーを追加できることがわかりました。
欠点は、このコードをあちこちに追加する必要があることです。これは一定ではありません。'..'
相対パスは、階層内のパッケージの深さによって異なります。
他の可能な解決策...
- アプリケーションルートを使用して.pthファイルを作成できます。残念ながら、これはPythonインストールのsite-packagesフォルダーに追加する必要があるため、アプリケーション固有ではありません。
- アプリケーションルートを一時的にPYTHONPATHに追加し、すべてのモジュールがルートからパッケージを参照するようにすることができます。ただし、これにより、を呼び出すだけでスクリプトを実行するという単純さがなくなり
python.exe whatever.py
ます。 - インポートすると、アプリケーションのルートフォルダーでマーカーファイルを検索するようなモジュールを作成できます。次に、この汎用モジュールをローカルのPythonインストールにインストールして、アプリ内のすべてのモジュールにインポートできるため、実行しているモジュールに関係なく、ルートがPYTHONPATHにあることが保証されます。
python - djangoのインポートが機能しませんか?Pythonpath?
私はPython2.7と(私は信じている)Django1.0でWindowsを実行しています。BitnamiDjangostackを使用してDjangoをインストールしました。奇妙なことに、Pythonで「importdjango」と入力すると、次のエラーが発生しました。
オンラインで回答を検索しましたが、見つかった回答はすべて「djangoはPYTHONPATHに含まれている必要があります」でした。私はPythonを初めて使用するので、これが何を意味するのかわかりません。誰かが私にこれを説明してもらえますか?
python - Pythonコードを再利用するためのベストプラクティス
私はPythonライブラリアプリ(いくつかの* .pyファイルを含む)を作成しました。そして、私のPythonプロジェクトのいくつかは、ライブラリアプリでコードを再利用する必要があります。Pythonコードを再利用するための推奨されるベストプラクティスは何ですか?現在、私は3つのオプションを考えました。
- コピーアンドペースト。これはベストプラクティスからはほど遠いです。DRYの原則に違反しています(繰り返さないでください)。
- ライブラリアプリのフォルダーを環境変数PYTHONPATHに追加します
export PYTHONPATH=/path/to/library/app
。次に、同じコンピューター上のすべてのプロジェクトがライブラリアプリのコードを参照できます。 - そして、Pythonコードのsys.pathへのライブラリアプリのフォルダ:
sys.path.append('/path/to/library/app')
上記の3つのオプションのうち、どれを好みますか?他の2つのオプションと比較してどのような利点がありますか?他にもっと良いオプションはありますか?Python開発の長年の経験を持つ人がこの質問に答えることができれば非常にありがたいです。