[解決済み] Pythonで自作のモジュールをインポートできない
2022-04-23 16:22:30
質問
Pythonでモジュールのインポートがどのように動作するのか理解するのに苦労しています(他の言語でもやったことがありません)。
あるとします。
myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py
今、私はこのようなものを手に入れようとしています。
myapp.py
===================
from myapp import SomeObject
# stuff ...
TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
しかし、Pythonでは
myapp
はモジュールです。
ImportError: No module named myapp
解決方法は?
あなたの場合、インポートしようとしているのは
SomeObject
を myapp.py と TestCase.py のスクリプトから削除してください。myapp.py からは、次のようにします。
import SomeObject
は同じフォルダーにあるので TestCase.py については、次のようにします。
from ..myapp import SomeObject
しかし
これは、パッケージからTestCaseをインポートしている場合のみ機能します。もし、直接
python TestCase.py
の場合、パスを変更する必要があります。これは、Pythonの中で行うことができます。
import sys
sys.path.append("..")
from myapp import SomeObject
ただし、これは一般に推奨されません。
一般的に、他の人に自分のPythonパッケージを利用してもらいたい場合は
distutils
を使用してセットアップスクリプトを作成します。そうすれば、誰でも簡単にあなたのパッケージをインストールすることができます。
python setup.py install
そして、そのマシン上のどこでも利用できるようになります。もしあなたがそのパッケージについて真剣に考えるなら、Python Package Index に追加することもできます。
PyPI
.
関連
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] ローカルにインストールされたPythonモジュールの一覧を取得するにはどうしたらいいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
opencvとpillowを用いた顔認証システム(デモあり)
-
pythonを使ったオフィス自動化コード例
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Python LeNetネットワークの説明とpytorchでの実装
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。