問題タブ [python-import]
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 - Python エラー "ImportError: No module named"
Python はローカル ディレクトリにインストールされます。
私のディレクトリツリーは次のようになります。
私のコードはここにあります:
この例を実行するにはpython mountain.py
、次のコードを記述します。
そして、私はエラーが発生します:
私はすでにチェックしてsys.path
おり、そこにディレクトリがあり/site-packages
ます。また、__init__.py.bin
これがパッケージであることを Python に示すために、toolkit フォルダーにファイルがあります。__init__.py.bin
サンプルディレクトリにもあります。
にあるときに Python がファイルを見つけられない理由がわかりませんsys.path
。何か案は?パーミッションの問題でしょうか? 実行許可が必要ですか?
python - インタープリターのバージョンが古いために失敗した将来の機能 (__future__) のインポートを適切に処理するには?
失敗した将来の機能のインポートをどのように適切に処理しますか? ユーザーが Python 2.5 を使用して実行していて、モジュールの最初のステートメントが次の場合:
このモジュールを Python 2.5 用にコンパイルすると、次のエラーで失敗します。
Python >= 2.6 でプログラムを再実行する必要があることをユーザーに通知し、その方法についていくつかの指示を提供したいと思います。ただし、PEP 236を引用するには:
future_statement の前に表示できる行は次のとおりです。
- モジュールのドキュメント文字列 (存在する場合)。
- コメント。
- 空行。
- その他の future_statements。
だから私は次のようなことはできません:
それが得られるからです:
PEP からのこのスニペットは、インラインで行うことを期待しているようです:
Q: future_statements を try/except ブロックでラップしたいので、実行している Python のバージョンに応じて異なるコードを使用できます。なぜできないのですか?
A: すみません!try/except はランタイム機能です。future_statements は主にコンパイル時のギミックであり、try/except はコンパイラが完了してからずっと後に発生します。つまり、try/except を実行するまでに、モジュールに有効なセマンティクスは既に完了しています。トライ/エクセプトでは、達成すべきと思わ れることを達成できないため、単純に許可されていません。また、これらの特別なステートメントを簡単に見つけて認識できるようにしたいと考えています。
__future__ を直接インポートし、その中の情報を sys.version_info と一緒に使用して、実行中のリリースが特定の機能のステータスに関連してどこにあるのかを把握できることに注意してください。
アイデア?
python - 複数の場所からモジュールをインポートするためのより適切な方法は?
ネストされた一連の try/except ステートメントではなく、次のコードを整理する方法はありますか?
python - Python: 含まれているパッケージをインポートする
パッケージ内にあるモジュールでは、そのパッケージ内で定義された関数を使用する必要があり__init__.py
ます。パッケージ内に存在するモジュール内にパッケージをインポートして、その機能を使用するにはどうすればよいですか?
モジュール内にインポート__init__
すると、パッケージはインポートされませんが、代わりに という名前のモジュールがインポートされ__init__
、名前の異なるものの 2 つのコピーが作成されます...
これを行うためのpythonicな方法はありますか?
python - Python - サブフォルダーからの絶対インポートの実行
基本的に、私はこの男と同じ質問をしています: How to do relative imports in Python?
しかし、誰も彼に正しい答えを与えませんでした。サブフォルダー内にいて、ディレクトリに移動してから別のサブフォルダーに移動したい場合、彼らが提案したことを実行しても機能しません(OPが回答へのコメントで指摘したように)。
sys.path を使用してこれを実行できることはわかっていますが、よりクリーンな方法をお勧めします。
例:
Module_A を Module_B にインポートするにはどうすればよいですか?
python - Python クラスを動的にロードする方法
Python クラスの文字列が与えられた場合、たとえばmy_package.my_module.MyClass
、それをロードする最善の方法は何ですか?
言い換えればClass.forName()
、Java で同等のもの、Python で機能するものを探しています。Google App Engine で動作する必要があります。
これは、クラスの FQN を文字列として受け取り、クラスへの参照を返す関数であることが望ましいです。
python - オプション機能をインポートして提供するための Python のグッド プラクティスは何ですか?
私はgithubでソフトウェアを書いています。これは基本的に、いくつかの追加機能を備えたトレイ アイコンです。オプション機能の基本的な依存関係を実際にユーザーにインストールさせることなく、実際に機能するコードを提供したいのですが、使用しないものを実際にインポートしたくないので、このようなコードは「良い解決策":
ただし、いくつかの問題があります。ユーザーが自分のマシンをフォーマットし、OS の最新バージョンをインストールして、このアプリケーションを再展開すると、警告なしに機能が突然消えます。解決策は、構成ウィンドウにこれを表示することです。
しかし、これが mac の場合、ユーザーが満たすことのできない依存関係を探してワイルド グース チェイスにユーザーを送っていないことをどのように知ることができますか?
2番目の問題は次のとおりです。
問題。ファイルがすべての Linux ディストリビューションで常に gnomekeyring.so と呼ばれていることを確認できますか?
他の人はこれらの機能をどのようにテストしていますか? 基本の問題点
コードがグローバルであるということです。これらは散らばっている可能性があり、ユーザーがpynotifyを望まなくても....とにかくロードされます。
では、この問題を解決する最善の方法は何だと人々は考えているのでしょうか?
python - Python パッケージのインポート エラー
モジュールをパッケージ化しようとしていますが、機能していないようです。
私のディレクトリツリーは次のようなものです:
そして、私が使用しているコードは
エラーが発生します:
何がうまくいかないのですか?これは、Ubuntu 8.10 で Python 2.5 を使用しています。
よろしくお願いします。