您可以嘗試類似:
import os.path, sys
# Add current dir to search path.
sys.path.insert(0, "dir_or_path")
# Add module from the current directory.
sys.path.insert(0, os.path.dirname(os.path.abspath(os.path.realpath(__file__))) + "/dir")
這將您的目錄添加到Python搜索路徑。然後你可以照常進口。
要查看哪些路徑已經被添加,檢查由:
import sys
from pprint import pprint
pprint(sys.path)
如果仍然不能正常工作,請確保您的模塊是有效的Python模塊(應包含__init__.py
文件的目錄內)。如果不是,請創建一個空的。
備選地只加載類直列,在Python 3你可以使用exec()
,例如:
exec(open(filename).read())
在Python 2:execfile()
。
參見:Alternative to execfile in Python 3.2+?
如果運行命令行腳本,也可以通過定義PYTHONPATH
變量指定你的Python路徑,所以Python可以在提供的目錄中查找的模塊,例如
PYTHONPATH=$PWD/FooDir ./foo.py
其他解決方案檢查:How to import other Python files?
是的,我沒發佈前先搜索,但沒有設法得到它的工作還沒有。 – Elia 2015-04-04 14:47:53
「Project Name」目錄是否僅包含Python源代碼?如果是這樣,你可以考慮把它轉換成一個包。預期如何使用工廠模塊和類?是的,你可以用'sys.path'搞定,但除非你知道自己在做什麼,否則你可能會真的搞砸你未來的可擴展性。提供有關「項目名稱」內容的更多信息。你的'main'位於哪裏? – OozeMeister 2015-04-04 15:00:52
項目名稱也包含其他文件格式(txt,pts,csv,dxf ...) 我應該簡單地將類導入爲模塊並使用它們包含的函數..Main位於src/TryNewFunctions – Elia 2015-04-04 15:13:07