Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自终端的Python SciPy调用失败_Python_Ubuntu_Numpy_Terminal_Scipy - Fatal编程技术网

来自终端的Python SciPy调用失败

来自终端的Python SciPy调用失败,python,ubuntu,numpy,terminal,scipy,Python,Ubuntu,Numpy,Terminal,Scipy,我试图使用标准的 python rosen.py 但它失败了。我可以在空闲状态下点击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 = fmi

我试图使用标准的

python rosen.py

但它失败了。我可以在空闲状态下点击
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代码,并且工作正常:

import numpy as np
a=np.sin(1)
print a
它将在终端窗口或空闲窗口中打印,具体取决于调用它的位置

基本上,如何让rosen.py导入SciPy并在从Ubuntu终端调用时运行

非常感谢您的帮助。

您有什么建议吗

#!/usr/bin/python
在文件的顶部标识python解释器的位置?并使用

chmod +x rosen.py
那么在Ubuntu下,这两个命令中的任何一个都适用于我:

./rosen.py 

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

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

你有吗

#!/usr/bin/python
在文件的顶部标识python解释器的位置?并使用

chmod +x rosen.py
那么在Ubuntu下,这两个命令中的任何一个都适用于我:

./rosen.py 

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


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

在我看来,您的
idle
版本指向的python实现与您的第一个版本不同。尝试以下方法(从命令行--而不是python):

以及:


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

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

以及:


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

它是如何失败的?是否有错误消息?它是如何失败的?有错误消息吗?是的,谢谢你,当我使用“head-1”时,我得到一个返回“#”/usr/local/bin/python2.7“当我使用”哪个python“我得到了“/usr/local/bin/python”哪个方法最容易纠正这个错误?@James你应该做一个
ls-l/usr/local/bin/python
。通常一个目录路径会指向另一个。。为了安全起见,对tother路径也这样做。@James”/usr/local/bin/python“可能是指向其他内容的符号链接(请尝试
ls-l/usr/local/bin/python
)。用
/usr/local/bin/python2.7
检查相同的内容,以确保它们确实指向不同的文件。然后要重新映射它,您可以执行以下操作:
mv/usr/local/bin/python/usr/local/bin/python\u save&&ln-s/usr/local/bin/python2.7/usr/local/bin/python
@James或者,您可以设置一个别名。。。在<代码> ~//BASHC ADD:<代码>别名Python=/Ur/Posial/BIN/Python 2.7< /代码>但我不认为这是一个非常可靠的解决方案。@杰姆斯而不是使用<代码> Python罗森。Py < /代码>尝试键入整个路径,这将告诉您哪个Python设置正确。e、 例如,
/usr/bin/python rosen.py
和另一条路径。是的,谢谢你mglison,当我使用“head-1”时,我得到了“#”/usr/local/bin/python2.7“当我使用”哪个python“我得到了“/usr/local/bin/python”哪个方法最容易纠正这个错误?@James你应该做一个
ls-l/usr/local/bin/python
。通常一个目录路径会指向另一个。。为了安全起见,对tother路径也这样做。@James”/usr/local/bin/python“可能是指向其他内容的符号链接(请尝试
ls-l/usr/local/bin/python
)。用
/usr/local/bin/python2.7
检查相同的内容,以确保它们确实指向不同的文件。然后要重新映射它,您可以执行以下操作:
mv/usr/local/bin/python/usr/local/bin/python\u save&&ln-s/usr/local/bin/python2.7/usr/local/bin/python
@James或者,您可以设置一个别名。。。在<代码> ~//BASHC ADD:<代码>别名Python=/Ur/Posial/BIN/Python 2.7< /代码>但我不认为这是一个非常可靠的解决方案。@杰姆斯而不是使用<代码> Python罗森。Py < /代码>尝试键入整个路径,这将告诉您哪个Python设置正确。e、 例如,
/usr/bin/python rosen.py
和其他路径。非常感谢Levon,我尝试了这种方法,但我认为我的python安装方式让我无法使用此解决方案…非常感谢Levon,我尝试了这种方法,但我认为我的python安装方式让我无法使用此解决方案。。。