[英]How to properly write the import statement
我如何正確地寫這樣的東西:
from ../lib.model import mymodel
這是樹:
lib----->model---->mynodel.py
|
|----->myscript--->myscript.py
如果lib
是一個包,請運行myscript
作為模塊並導入mymodel
如下所示:
from ..model import mymodel # relative import
要么:
from lib.model import mymodel # absolute import
要將myscript.py
作為lib
包中的模塊運行,請執行以下操作之一:
lib.myscript.myscript
lib
的文件夾中運行程序 python -m lib.myscript.myscript
從包含lib
的文件夾中運行myscript.py
作為模塊 如果您的腳本使用lib
,則可以使用setuptools
為項目創建setup.py
文件
使用setuptools develop
命令將創建項目的“開發模式”版本並將其放在python路徑上。 然后就像使用任何python包一樣容易使用它。
你的setup.py可以很簡單:
from setuptools import setup, find_packages
setup(
name = "lib",
version = "0.1dev",
packages = find_packages(),
)
然后你就可以開發你的項目了
python setup.py develop
現在,您可以將包導入到所需的任何腳本中
from lib.model import model
假設你從myscript.py
打電話。
嘗試這個:
import sys
sys.path.insert(0, '../model/')
import mynodel
mynodel
可能是mymodel
,我覺得你在帖子中寫了一個拼寫錯誤。
永遠不要將擴展名放在imprt語句中。
sys.path
是python將查找庫文件的路徑列表。 您只需添加所需目錄的相對路徑即可。 通過將它放在列表的前面,您可以確保python將首先在指定的路徑中查找文件(例如,有一個具有相同名稱的庫,您的文件將具有優先級)。
此外,提供tree
的輸出(linux和cmd
(Windows)命令)可能很有用。 這給出了標准化輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.