我该如何正确地写这样的东西:
from ../lib.model import mymodel
这是树:
lib----->model---->mynodel.py
|
|----->myscript--->myscript.py
我该如何正确地写这样的东西:
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
该导入的文件夹中运行程序lib.myscript.myscript
myscript.py
从包含的文件夹中作为模块运行lib
,使用python -m lib.myscript.myscript
如果您的脚本正在使用lib
,您可以使用为您的项目创建一个setup.py
使用文件setuptools
使用 setuptoolsdevelop
命令将创建项目的“开发模式”版本并将其放在 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)命令)的输出可能很有用。这给出了标准化的输出。