簡體   English   中英

名稱中帶有破折號或連字符 (-) 的 Python 模塊

[英]Python module with a dash, or hyphen (-) in its name

我有一個現有的 python 模塊,名稱中帶有一個破折號,foo-bar.py

更改模塊名稱是我希望避免的事情,因為該模塊是共享的,我將不得不追蹤它使用的所有地方,以便我的特殊情況能夠正常工作。

有沒有辦法加載名稱包含通常禁止的“-”的模塊?

(我確實理解這不是最佳實踐。但是對於這種情況,我寧願不重新設計和測試更大的應用程序集。此外,我認為我的公司主人不會同意我花時間實施這樣的變化。)

您可以使用__import__()來做到這__import__() 例如:

foobar = __import__("foo-bar")

但是你真的應該重命名模塊。 這樣您就可以避免在模塊的文件名與程序中使用的標識符不同的情況下混淆。

我知道這個問題已經得到了提問者的滿意回答,但這是另一個我認為使用__import__()有一些優點的答案。

import importlib
mod = importlib.import_module("path.to.my-module")
# mod.yourmethod()

根據文檔:

"This provides an implementation of import which is portable to any 
Python interpreter. This also provides an implementation which is 
easier to comprehend than one implemented in a programming language 
other than Python."

Python 2.7 +

嘗試使用下划線而不是連字符。

導入 pymysql_utils

即使 import pymysql-utils 是 pip 使用的模塊的名稱,它也為我工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM