ファイルの名前を変更した場合のみ可能ですか?または、そのファイルの名前を定義するためにファイルに__module__
という変数がありますか?Pythonモジュール名を変更するには?
答えて
はい、ファイルの名前を変更する必要があります。あなたのシステムからoldname.pyc
とoldname.pyo
のコンパイル済みファイル(もしあれば)を削除することをお勧めします。そうしないと、モジュールは古い名前でもインポート可能になります。
すべてのクラスには__module__
というプロパティがありますが、これを変更してもクラスの名前空間は変更されません。
可能であれば、setattrを使用してメソッドやクラスを目的のモジュールに挿入する必要がありますが、コードを将来のピアにとって非常に混乱させる危険性があります。
ファイルの名前を変更することをお勧めします。
この__module__
の変数はどこですか。元のスクリプトはインポートするものを知っていますか?モジュールはファイル名で認識され、変数sys.path
で定義されたパスを調べます。
ファイルの名前を変更してから、oldname.pyc
を削除して、すべてが正しく機能することを確認してください。
あなたが本当に文で「インポートNEWNAME」で「oldname.py」ファイルをインポートしたい場合は、それを可能にするトリックがあります:sys.modules
に注入、その後、どこか古い名前のモジュールをインポート新しい名前で後続のインポートステートメントでも、新しい名前でそのステートメントが検索されます。コードサンプル:
# this is in file 'oldname.py'
...module code...
使用法:今すぐ
# inject the 'oldname' module with a new name
import oldname
import sys
sys.modules['newname'] = oldname
することができますどこでもimport newname
であなたのモジュール。
私はそれをしたいと思う状況を考えることができませんが、それはあなたができることを涼しいです:) – technomalogical
一つの状況:あなたがPython 2.6と2.7の両方との互換性を望むが、いくつかの新しい2.7ユニットテスト機能。このトリックでは、新しい機能を使用している間にコードを 'import unittest 'を使用するだけで済むので、Pythonのバージョンを切り替えるたびにimportステートメントを変更する必要はありませんでした。 – Tobi
あなたはとして使用することにより、インポート時にモジュールに使用される名前を変更することができます。
import foo as bar
print bar.baz
あなたがimport module_name
を行うとPythonインタプリタは、PYTHONPATH内のファイルmodule_name
.extension
を探します。したがって、ファイルの名前を変更することなく、その名前を変更する必要はありません。しかし、もちろん、あなたが行うことができます。
import module_name as new_module_name
あるいは
import module_name.submodule.subsubmodule as short_name
便利です例えば。 DBコードを書くためのものです。
import sqlite3 as sql
sql.whatever..
次に切り替えます。 sqlite3
〜pysqlite
インポートラインを変更するだけです
私はbsddbでこのような問題が発生しました。私はbsddb3モジュールをインストールする必要がありましたが、何百ものスクリプトがbsddbをインポートしました。すべてのインポートを変更する代わりに、bsddb3 eggを抽出し、site-packagesディレクトリにソフトリンクを作成して、 "bsddb"と "bsddb3"の両方を同じものにするようにしました。
- 1. Python別のモジュールのモジュール変数を変更する
- 2. デフォルトフォントを変更せずにフォント名を変更するpython
- 3. Bluetooth名を変更Python
- 4. Pythonのディレクトリ名を変更する
- 5. pythonでフォルダ名を変更するには?
- 6. pythonのキー値の名前を変更するには
- 7. PythonモジュールをDLLファイルに変換する
- 8. フォルダをPythonのモジュールに変換する
- 9. Pythonに存在するファイルの名前を変更する
- 10. Python:サブパッケージと同じ名前のモジュールをインポートするには?
- 11. Pythonのモジュール命名規則
- 12. Pythonの拡張モジュールを純粋なPythonのctypesモジュールに変換する方法
- 13. PythonでHTMLファイルの名前を変更
- 14. Python - 行列をデータフレームに変更し、列の名前を変更します。
- 15. Python 3.xで 'スレッド'モジュールの名前が '_thread'に変更されたのはなぜですか?
- 16. es6モジュールでエクスポートの名前を変更できますか?
- 17. WPRトレースファイル名を変更するには?
- 18. Pythonのdatetimeモジュールで年の開始を変更しますか?
- 19. Pythonでdatetime.datetime.hourを変更するには?
- 20. マイscipy.miscモジュールは、名前が変更されたimsave
- 21. Pythonのクラス変数の名前を変更せずに
- 22. emacsとpython更新モジュール
- 23. 名前の変更Pythonの一時ファイル
- 24. インスタンスの名前の変更/エイリアス(Pythonで)
- 25. Pythonでのインタラクティブな名前変更スクリプト
- 26. blenderにpythonモジュールをインストールするには
- 27. Macにpythonモジュールをインストールするには
- 28. すべての条件(変更されたモジュール、変更されたファイル名)の下でファイル名からモジュールをインポートする
- 29. Python、dbm.dumbモジュールに可変インデックスを追加
- 30. argparseモジュール - 実行時にヘルプフォーマットを変更するには?
ファイルの名前を変更する際の問題点は何ですか?なぜ仕事の名前を変更しませんか? –
実際には、それはちょうど怠惰でした...私は、Launchpadでファイルを削除して再度追加したくありませんでした。 – Rodrigo