来自终端的Python SciPy调用失败

2024-09-27 09:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用标准从Ubuntu终端调用以下Python脚本

python rosen.py

但它失败了。我可以在idle中点击F5,它工作得很好,但是当从终端调用时它失败了。rosen.py的代码如下:

from scipy.optimize import fmin

def rosen(x):
    b=sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)
    print b
    return b

x0 = [1.3, 0.7, 0.8, 1.9, 1.2]
xopt = fmin(rosen, x0, xtol=1e-8)
print xopt

同样,当在空闲状态下运行时,它工作得很好,但是当从终端调用它时,它说scipy不存在。。。在

我可以在终端或空闲状态下运行以下numpy代码,它可以正常工作:

^{pr2}$

它将在终端窗口或空闲窗口中打印,具体取决于调用它的位置。在

基本上,我怎样才能得到罗森.py导入SciPy并在从Ubuntu终端调用时运行??在

非常感谢你的帮助。在


Tags: 代码py脚本终端标准ubuntu状态scipy
2条回答

你有吗

#!/usr/bin/python

在文件的顶部来标识python解释器的位置?并使用

^{pr2}$

那么在Ubuntu下,任何一个命令都适用于我:

./rosen.py 

或者

python rosen.py 

(如果您希望能够在命令行上首先运行不需要键入python的脚本,chmod是可选的。python rosen.py将在不使用chmod的情况下工作)

由于您已经在脚本中导入了scipy,所以我不确定我是否理解问题的这一部分。在

在我看来,idle版本指向的python实现与路径中的第一个不同。尝试以下操作(从命令行而不是python):

head -1 `which idle`

以及:

^{pr2}$

路径相同吗?如果不是,那可能是你的问题。要解决这个问题,根据您的系统设置,您可以重新排序您的路径以获得要调用的python的正确版本,或者您可以在路径的早期某个位置创建指向正确python实现的符号链接。在

相关问题 更多 >

    热门问题