如何正确编写import语句

时间:2013-09-19 00:36:47

标签: python

我如何正确地写这样的东西:

from ../lib.model import mymodel

这是树:

lib----->model---->mynodel.py
 |
 |----->myscript--->myscript.py

3 个答案:

答案 0 :(得分:1)

如果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作为模块运行

答案 1 :(得分:1)

如果您的脚本使用lib,则可以使用setup.py

为项目创建setuptools使用文件

使用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

答案 2 :(得分:0)

假设您从myscript.py致电。

试试这个:

import sys
sys.path.insert(0, '../model/')
import mynodel

mynodel可能是mymodel,我认为你在帖子中写了一个错字。

永远不要将扩展名放在imprt语句中。

sys.path是python将查找库文件的路径列表。您只需添加所需目录的相对路径即可。通过将它放在列表的前面,您可以确保python将首先在指定的路径中查找文件(例如,有一个具有相同名称的库,您的文件将具有优先级)。

此外,给出tree(linux和cmd(Windows)命令的输出可能很有用。这给出了标准化的输出。