問題タブ [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.

0 投票する
3 に答える
63888 参照

python - 相対インポート用の python パッケージ化

まず第一に、申し訳ありませんが、相対インポートについて多くの質問があったことは知っていますが、解決策が見つかりませんでした. 可能であれば、次のディレクトリ レイアウトを使用したいと思います。

今私の質問は次のとおりです。

  • パッケージ内のテスト ファイルはどのように myClass.py を適切にインポートしますか?

  • myClass を libs/myClass または include/myClass のサブモジュールとして使用すると仮定すると、パッケージを外部からどのようにインポートしますか?

これまでのところ、これに対するエレガントな解決策を見つけることができませんでした。私が理解しているGuidoの決定から、それは可能であるはずですfrom ..src import myClassが、これはエラーになります:

ValueError: Attempted relative import in non-package

myClass をパッケージとして扱わないように見えます。ドキュメントを読む

__init__.py ファイルは、Python がディレクトリをパッケージを含むものとして扱うために必要です。

パッケージのスクリプトがどこにあるかを指定する何かが欠けているようですが、 .pth を使用する必要がありますか?

0 投票する
33 に答える
2427329 参照

python - 別のフォルダからファイルをインポートする

次のフォルダー構造があります。

file.pyからいくつかの関数をインポートしたいsome_file.py

私はもう試した

など、さまざまな試みが行われましたが、これまでのところ、適切にインポートできませんでした。これどうやってするの?

0 投票する
2 に答える
650 参照

python - Pythonのインポートエラー

file1.py で:

file2.py で:

出力:

ファイル 1 に test2 を含めると、次のエラーが発生します。

理由とそれを機能させる方法を説明できますか?

0 投票する
2 に答える
2860 参照

python - import * と from xxx import * の違いを確認

それを知って驚いた

グローバルメンバーにさまざまな影響を与えました。私の実験が正しい動作であることを確認したかったのです。

最初の例では、モジュール foo のメンバーを変更すると、foo をインポートするすべてのコードに反映されます。ただし、後者の場合にそのメンバーを変更すると、インポートされたファイルにのみ影響するようです。つまり、後者のアプローチを使用すると、各インポート ファイルに foo からのメンバーの独自のコピーが与えられます。

私が望む動作は、すべてのファイルから foo.x にアクセスし、すべてのファイルからそれを変更し、その変更をすべてのファイルに反映させることです (必要に応じて真のグローバル)。

0 投票する
1 に答える
834 参照

django - 奇妙なジャンゴ管理エラー

新しいマシンでプロジェクトをクリーンに起動したところ、admin に入ると次のエラーが表示されました。これは、forms.py の構文エラーを示しています (管理者のフォームだと思います)。前にこのようなものを見た人はいますか? :


トレースバックで言及されている forms.py ファイルが私が考えているものである場合、これが問題の原因となっている行です。

ここで python 2.4 に何か問題がありますか?

0 投票する
1 に答える
1042 参照

python - Python / Djangoが間違ったモジュールをインポートしています(絶対的である必要がある場合は相対的)

Django1.2プレアルファ版とPython2.4を使用しています。ええ、私は知っていますが、私はそれに固執しています。現時点ではアップグレードできません。とにかくそれが答えだとは思えません。

2つのテンプレートタグライブラリがfooありbarます。ただし、fooこれはトップレベルパッケージの名前でもあり、たまたま次のパッケージになっていますbar

タグライブラリbar.pyには、次のような行が含まれています。

...そしてあなたはそれがロードされることを期待するでしょうfoo-1.2.3/foo/conf/settings.py

しかし、いいえ:

TemplateSyntaxError:'bar'は有効なタグライブラリではありません:django.templatetags.barからテンプレートライブラリを読み込めませんでした。confという名前のモジュールがありません

残念ながら、Djangoはちょっとした魔法を実行し、すべてのテンプレートタグライブラリをにバインドしdjango.templatetags.*ます。したがって、barはとしてインポートされておりdjango.templatetags.bar、呼び出すと、from foo.conf import settingsインポートされることになりますbar-4.5/somepackage/templatetags/foo.py。うーん!

これを修正する方法はありますか?

インポートの直前にブレークポイントを設定し、それfoo-1.2.3がの先頭にあることを確認しましsys.pathたが、importキーワードが間違ったを検出しますfoo

それが役立つ場合は、foo-1.2.3パッケージを変更できますが(ローカルでチェックインされ、段階的に廃止されているため)、パッケージの変更を拒否しbar-4.5ます(オープンソースパッケージであり、システム全体にインストールされているため)。

0 投票する
5 に答える
56068 参照

python - os.name、sys.platform、または platform.system をいつ使用するか?

私の知る限り、Python には、どのオペレーティング システムが実行されているかを調べる方法が 3 つあります。

  1. os.name
  2. sys.platform
  3. platform.system()

この情報を知っておくと、条件付きインポートや、プラットフォーム間で異なる機能を使用する場合 ( time.clock()Windowstime.time()と UNIX など) に役立つことがよくあります。

私の質問は、なぜこれを行うのに3つの異なる方法があるのですか? ある方法を使用し、別の方法を使用しないのはいつですか? 「最良」の方法はどれですか (最も将来性のある方法、またはプログラムを実際に実行できる特定のシステムを誤って除外する可能性が最も低い方法)?

sys.platformは よりも具体的であるように思われるため、 ( だけではなく) と(だけではなく)os.nameを区別できます。しかし、もしそうなら、との違いはどうですか?win32cygwinntlinux2darwinposixsys.platformplatform.system()

たとえば、どちらが優れているか、これは次のとおりです。

またはこれ?:

今のところ、私は に固執するsys.platformので、この質問は特に緊急ではありませんが、これに関するいくつかの明確化に非常に感謝しています.

0 投票する
7 に答える
218580 参照

python - Pythonでlxmlモジュールをインストールする

Pythonスクリプトの実行中に、このエラーが発生しました

今、lxmlをインストールしようとしました

しかし、それは私に次のエラーを与えます

libxslt のビルド構成の使用

0 投票する
11 に答える
193759 参照

python - PyDevとEclipseに関する未解決のインポートの問題

私はPyDevとPythonに非常に慣れていませんが、Java用のEclipseをたくさん使用しています。Dive Into Pythonの例をいくつか試していますが、これは非常に些細な問題のように感じられ、非常に煩わしくなりつつあります。UbuntuLinux10.04を使用しています。

ディレクトリにあるodbchelper.pyファイルを使用できるようにしたい/Desktop/Python_Tutorials/diveintopython/py

PyDev/Eclipseプロジェクトで作業しているexample.pyファイルは次のとおりです。

これは正常に機能しますが、コードの次の行を次のようにします。

これにより、毎回未解決のインポートエラーが発生します。可能な限りほぼすべてのディレクトリにファイルを追加しまし__init__.pyたが、何の役にも立ちません。__init__.pyプロジェクトの場所とodbchelper.pyファイルの間のさまざまなレベルのディレクトリに一度に1つずつファイルを追加しようとしました。また、その間にあるすべてのディレクトリにファイルを同時に追加しようとしました__init__.py。どちらも機能しません。

私がやりたいのは、他のディレクトリのどこかにプロジェクトがあることです。たとえば/Desktop/MyStuff/Project、example.pyがあり、example.pyからodbchelper.pyをインポートします。/Desktop/Python_Tutorials/diveintopython/py/

関数を使用してこのディレクトリをパスに追加し、それをインポートするように言っているだけのメッセージボードの応答を見つけることができますsys.path.append()...しかし、それはまさに私のコードで行っていることであり、機能していません。

Ctrlエラーメッセージを抑制するために--トリックも試しました1が、プログラムはまだ正しく機能していません。エラーが発生しますImportError: No module named odbchelper。したがって、明らかにパスが追加されていないか、__init__.pyファイルを追加するための私の多くの順列のすべてが見落とされているという問題があります。

これほど単純なもの...私のマシンのどこかに存在するファイルから物事を呼び出す...これだけの労力が必要になるのは非常に苛立たしいことです。

0 投票する
4 に答える
26517 参照

python - Setup.py: CentOS に Python2.6 で lxml をインストールします。

CentOS 5.4 に Python 2.6.6 をインストールしました。

lxml モジュールを使用したいのですが、ソースからのビルドに失敗しました: