タグ付けされた質問 「python-import」

Pythonでのモジュールのインポートに関する質問


6
「import os.path」または「import os」を使用する必要がありますか?
公式ドキュメントによると、os.pathはモジュールです。したがって、それをインポートする好ましい方法は何ですか? # Should I always import it explicitly? import os.path または... # Is importing os enough? import os 「os作品のインポート」には答えないでください。私も知っています。Python2.6の時点では、現在も動作しています。私が知りたいのは、この問題に関する公式の勧告です。したがって、この質問に答える場合は、参考文献を投稿してください。

21
_sqlite3という名前のモジュールはありません
Debian 5を実行しているVPSでDjangoアプリを実行しようとしています。デモアプリを実行すると、次のエラーが返されます。 File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module> raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc) ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3 Pythonのインストールを確認すると、同じエラーが発生します。 Python 2.5.2 (r252:60911, May 12 2009, 07:46:31) [GCC 4.1.2 …

1
from __future__ import print_functionを使用するとPython2スタイルの印刷が中断されるのはなぜですか?[閉まっている]
閉まっている。この質問は再現性がないか、タイプミスが原因です。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4年前休業。 この質問を改善する 私はpythonでプログラミングするのが初めてで、セパレータを付けて出力しようとしていますが、それでも構文エラーが発生します。 Python 2.7を使用しています。 これが私のコードです: from __future__ import print_function import sys, os, time for x in range(0,10): print x, sep=' ', end='' time.sleep(1) そしてここにエラーがあります: $ python2 xy.py File "xy.py", line 5 print x, sep=' ', end='' ^ SyntaxError: invalid syntax $

5
sys.path / PYTHONPATHにディレクトリを追加する
特定のディレクトリからモジュールをインポートしようとしています。 問題はsys.path.append(mod_directory)、パスを追加してpythonインタープリターを開くと、ディレクトリmod_directoryがリストsys.pathの最後に追加されることです。PYTHONPATHPythonインタープリターを開く前に変数をエクスポートすると、ディレクトリがリストの先頭に追加されます。後者の場合はモジュールをインポートできますが、前者の場合はインポートできません。 なぜこれが起こっているのか誰かが説明し、Pythonスクリプト内でをmod_directory最初に追加する解決策を教えてくれませんか?

9
Python Noseインポートエラー
ノーズテストフレームワークに、ファイル構造内のテストスクリプトの下にあるモジュールを認識させることができないようです。問題を示す最も簡単な例を設定しました。以下で説明します。 パッケージファイルの構造は次のとおりです。 ./__init__.py ./foo.py ./tests ./__init__.py ./test_foo.py foo.pyには以下が含まれます: def dumb_true(): return True tests / test_foo.pyには以下が含まれます: import foo def test_foo(): assert foo.dumb_true() 両方のinit .pyファイルが空です 私が実行した場合nosetests -vv(foo.pyがある)メインディレクトリに、私が取得します: Failure: ImportError (No module named foo) ... ERROR ====================================================================== ERROR: Failure: ImportError (No module named foo) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/loader.py", line …

16
Pythonパッケージがインストールされているかどうかを確認する
Pythonスクリプト内でパッケージがインストールされているかどうかを確認する良い方法は何ですか?インタプリタからは簡単ですが、スクリプト内で実行する必要があります。 インストール中に作成されたディレクトリがシステムにあるかどうかは確認できたと思いますが、もっと良い方法があると思います。Skype4Pyパッケージがインストールされていることを確認しようとしています。インストールされていない場合は、インストールします。 チェックを達成するための私のアイデア 一般的なインストールパスのディレクトリを確認します パッケージのインポートを試み、例外がスローされた場合はパッケージをインストールします

8
インポートされたモジュールのグローバル変数の可視性
Pythonスクリプトでモジュールをインポートする壁に少し遭遇しました。私はエラーを説明するために最善を尽くし、なぜそれに遭遇するのか、なぜこの特定のアプローチを結んで問題を解決するのか(これについては後で説明します): この補助モジュールがインポートされる名前空間で定義されたエンティティを参照するユーティリティ関数/クラスをいくつか定義したモジュールがあるとします(「a」をそのようなエンティティにします)。 module1: def f(): print a そして、「a」が定義されているメインプログラムがあり、そこにこれらのユーティリティをインポートします。 import module1 a=3 module1.f() プログラムを実行すると、次のエラーが発生します。 Traceback (most recent call last): File "Z:\Python\main.py", line 10, in <module> module1.f() File "Z:\Python\module1.py", line 3, in f print a NameError: global name 'a' is not defined 同様の質問が過去(2日前、d'uh)に尋ねられ、いくつかの解決策が提案されましたが、これらが私の要件に実際に合うとは思いません。ここに私の特定のコンテキストがあります: MySQLデータベースサーバーに接続し、データをGUIで表示/変更するPythonプログラムを作成しようとしています。わかりやすくするために、補助/ユーティリティのMySQL関連関数の束を別のファイルで定義しました。ただし、これらの変数にはすべて、最初にユーティリティモジュール内で定義した共通の変数があり、これはMySQLdbモジュールのカーソルオブジェクトです。カーソルオブジェクト(dbサーバーとの通信に使用される)はメインモジュールで定義する必要があることを後で理解しました。これにより、メインモジュールとそれにインポートされるすべてのオブジェクトがそのオブジェクトにアクセスできるようになります。 最終結果は次のようになります: Utilities_module.py: def utility_1(args): code which references a …

8
ImportError:libSM.so.6:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
OpenCVをインポートしようとするとimport cv2、次のエラーが発生します。 /usr/local/lib/python2.7/dist-packages/cv2/__init__.py in <module>() 7 8 # make IDE's (PyCharm) autocompletion happy ----> 9 from .cv2 import * 10 11 # wildcard import above does not import "private" variables like __version__ ImportError: libSM.so.6: cannot open shared object file: No such file or directory これを修正する方法がわからない-Googleの新しいColaboratoryツールで遊んでみてください。ノートブックはこちら:https : //drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing

11
PyDevおよびEclipseでの未解決のインポートの問題
私はPyDevとPythonに非常に慣れていませんが、JavaでEclipseをたくさん使用しています。私はいくつかのDive Into Pythonの例を処理しようとしていますが、これは非常に煩わしくなりつつある非常に些細な問題のように感じられます。Ubuntu Linux 10.04を使用しています。 ディレクトリにあるファイルodbchelper.pyを使用できるようにしたい /Desktop/Python_Tutorials/diveintopython/py これが、PyDev / Eclipseプロジェクトで作業しているexample.pyファイルです。 import sys sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py") これは正常に動作しますが、コードの次の行を次のようにしたいと思います。 import odbchelper これにより、毎回未解決のインポートエラーが発生します。__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ファイルを追加するための私の多くの順列のすべてが見逃されているという問題があります。 この単純な何かが私のマシンの他の場所にあるファイルから何かを呼び出す...これだけの労力が必要なのは非常にイライラします。

5
Pythonパッケージの一部であるすべてのモジュールをリストしますか?
Pythonパッケージの一部であるすべてのモジュールを見つける簡単な方法はありますか?私はこの古い議論を見つけましたが、これは本当に決定的なものではありませんが、os.listdir()に基づく独自のソリューションを展開する前に、明確な回答が欲しいです。

5
os.name、sys.platform、またはplatform.systemを使用する場合
私の知る限り、Pythonには、どのオペレーティングシステムが実行されているかを確認する3つの方法があります。 os.name sys.platform platform.system() この情報を知ることは、条件付きインポート、またはプラットフォーム間で異なる機能(time.clock()Windows time.time()とUNIXなど)を使用する場合に役立ちます。 私の質問は、なぜこれを行うために3つの異なる方法があるのですか?ある方法を別の方法ではなくいつ使用すべきですか?どの方法が「最良」ですか(プログラムが実際に実行できる特定のシステムを誤って除外する可能性が最も高い、または将来性が最も低い)。 ように思えるsys.platformよりも具体的であるos.nameあなたが区別できるように、win32からcygwin(だけとは対照的にはnt)、およびlinux2からdarwin(だけではなくてposix)。しかし、それは何の違いについてということなので、だ場合sys.platformとplatform.system()? たとえば、これはより良いです、これ: import sys if sys.platform == 'linux2': # Do Linux-specific stuff それともこれ?: import platform if platform.system() == 'Linux': # Do Linux-specific stuff 今のところ私はに固執するつもりですsys.platformので、この質問は特に緊急ではありませんが、これについての明確化に感謝します。

11
Python:現在実行中のスクリプトに関連してsys.pathに追加する最良の方法
スクリプトでいっぱいのディレクトリがあります(たとえば、としましょうproject/bin)。また、ライブラリがありproject/lib、スクリプトが自動的にそれをロードするようにしたいと思っています。これは、私が各スクリプトの上部で通常使用するものです。 #!/usr/bin/python from os.path import dirname, realpath, sep, pardir import sys sys.path.append(dirname(realpath(__file__)) + sep + pardir + sep + "lib") # ... now the real code import mylib これはちょっと面倒で見苦しく、すべてのファイルの最初に貼り付ける必要があります。これを行うより良い方法はありますか? 本当に私が望んでいるのは、このようにスムーズなものです: #!/usr/bin/python import sys.path from os.path import pardir, sep sys.path.append_relative(pardir + sep + "lib") import mylib または、さらに良いことに、私の編集者(またはコミットアクセス権を持つ他の誰か)が、クリーンアッププロセスの一環としてインポートの順序を変更することを決定しても壊れないもの: #!/usr/bin/python --relpath_append ../lib import …

6
PYTHONPATH対sys.path
別の開発者と私は、PYTHONPATHとsys.pathのどちらを使用して、Pythonがユーザー(たとえば、開発)ディレクトリのPythonパッケージを検索できるようにするかについて意見が異なります。 典型的なディレクトリ構造を持つPythonプロジェクトがあります。 Project setup.py package __init__.py lib.py script.py script.pyでは、次のようにする必要がありますimport package.lib。パッケージがsite-packagesにインストールされている場合、script.pyはを見つけることができますpackage.lib。 ただし、ユーザーディレクトリから作業する場合は、他に何かする必要があります。私の解決策は、PYTHONPATHに "〜/ Project"を含めるように設定することです。別の開発者は、script.pyの最初にこのコード行を配置したいと考えています。 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) Pythonがのローカルコピーを見つけられるようにしますpackage.lib。 この行は、開発者またはローカルコピーから実行している人々にのみ役立つため、これは悪い考えだと思いますが、それが悪い考えである正当な理由を述べることはできません。 PYTOHNPATH、sys.pathを使用する必要がありますか、それとも問題ありませんか?

4
モジュールをPythonに「再インポート」し、インポート後にコードを変更する方法
私は foo.py def foo(): print "test" IPythonでは次のものを使用します。 In [6]: import foo In [7]: foo.foo() test 次に、foo()を次のように変更しました。 def foo(): print "test changed" IPythonでは、呼び出しの結果はtest次のとおりです。 In [10]: import foo In [11]: foo.foo() test それから私は使用します: In [15]: del foo In [16]: import foo In [17]: foo.foo() test foo.pyc同じフォルダにあるものを削除しますfoo.pyが、それでも運がありません。 実行時に更新されたコードを再インポートする方法を教えてもらえますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.