【发布时间】:2014-08-26 20:36:12
【问题描述】:
我一直在尝试在 Python 中评估一个简单的“integrate(x,x)”语句,方法是按照将 Sage 导入 Python 的 Sage 说明进行操作。这是我的整个脚本:
#!/usr/bin/env sage -python
from sage.all import *
def main():
integrate(x,x)
pass
main()
当我尝试从命令行运行它时,我得到了这个错误:
NameError: global name 'x' is not defined
我尝试将var(x) 添加到脚本global x 中,尝试将integrate(x,x) 替换为sage.integrate(x,x),但我似乎无法让它工作,我总是抛出错误。
我使用的命令是./sage -python /Applications/path_to/script.py
我似乎无法理解我在这里做错了什么。
编辑:我觉得这与我“进口”鼠尾草的方式有关。我有一个文件夹,我们称之为文件夹 1,文件夹 1 里面是“sage”文件夹和“script.py”
我之所以这么想是因为输入“sage”。不会出现任何自动完成选项。
【问题讨论】:
-
为什么在另一个函数main中?
-
我不明白你的意思。我尝试删除 def main(): 和 main() 行,但这并没有改变任何东西。
-
我只是认为将代码放在 main() 函数中是惯例。我在 Python 之前学习 Java,没有 main() 代码就无法运行。
-
我想集成本身就是一个函数,所以你可以直接调用它,文档没有显示任何用法,就像你上面所说的那样,我运行他们的例子没有问题。
-
那么您能否解释一下我需要对代码进行的更改?