1

我无法从未存储在 sys.path 中的目录导入脚本。我在名为“Development”的目录中有一个保存为 test.py 的脚本,并且正在尝试将开发目录添加到 sys.path,以便我可以从当前名为 index.py 的脚本中导入一个函数。

这是我的 index.py 代码:

import sys
sys.path.append ('/Users/master/Documents/Development/')
import test

printline()

printline() 在 test.py 中定义为:

def printline():
    print "I am working"

这是我收到的错误:

Traceback (most recent call last):
  File "/Users/master/Documents/index.py", line 6, in <module>
    printline()
NameError: name 'printline' is not defined

关于如何让它发挥作用的任何想法?

谢谢。

4

3 回答 3

3
  1. 如果你这样做import test了,你定义的函数将被导入到它自己的命名空间中,所以你必须将它称为test.printline().

  2. test可能是您的 Python 路径中另一个模块的名称,并且由于您插入的目录已附加到路径中,因此只有test在找不到其他地方时才会考虑它。尝试将路径插入到头部sys.path

    sys.path.insert(0, "...")
    

在一个普通的 Python 中,罪魁祸首可能是 #1,但如果您不希望您的脚本在未来中断,您也应该习惯 #2。

于 2011-05-14T19:20:59.793 回答
1

使用from printline import printline然后使用它。

于 2011-05-14T19:22:13.153 回答
1
from test import println

println()

或者您可以通过测试模块对象调用 println:

test.println()
于 2011-05-14T19:20:49.857 回答