Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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脚本从终端运行时,python模块是正常的,但在bash脚本中调用相同的脚本时,却找不到它。为什么?_Python_Bash_Python Module - Fatal编程技术网

当python脚本从终端运行时,python模块是正常的,但在bash脚本中调用相同的脚本时,却找不到它。为什么?

当python脚本从终端运行时,python模块是正常的,但在bash脚本中调用相同的脚本时,却找不到它。为什么?,python,bash,python-module,Python,Bash,Python Module,(这里是新手,我找不到类似的东西)因此,我有一个python脚本,它可以向一些收件人发送带有附件的电子邮件,当我直接从终端运行它时,它工作正常。但是当我在bash脚本中调用这个脚本时,我得到一个错误,即找不到下面的模块。为什么呢?(在Mac上,如果这很重要) 因此,在我的mac上,我有两个python版本: Python 3.6存在于: /Users/name/anaconda/bin/python /usr/bin/python 虽然Python 2.7存在于: /Users/name/a

(这里是新手,我找不到类似的东西)因此,我有一个python脚本,它可以向一些收件人发送带有附件的电子邮件,当我直接从终端运行它时,它工作正常。但是当我在bash脚本中调用这个脚本时,我得到一个错误,即找不到下面的模块。为什么呢?(在Mac上,如果这很重要)


因此,在我的mac上,我有两个python版本:

Python 3.6存在于:

/Users/name/anaconda/bin/python
/usr/bin/python
虽然Python 2.7存在于:

/Users/name/anaconda/bin/python
/usr/bin/python
我的python_script.py在终端中单独调用时运行良好,正在调用python 2.7,具有以下shebang/firstline:

#!/usr/bin/python
在我的bash脚本中,调用python_script.py的行是:

python /directory/directory/python_script.py
代码在这个实现上不起作用,因为当您在终端中键入python时,它会启动python 3.6,而不是我的python_script.py使用的python 2.7(我错误地认为默认系统python将是mac附带的python 2.7)。解决方案(根据上面的堆栈建议)是将cd放入我的python_script.py目录中,然后通过键入以下内容从那里运行它:

./python_script.py
希望有一天这能帮助别人



(我本应该删除这篇文章,因为我一直在为某些原因获得否决票,但我会把它留给其他像我这样的新手)

打开终端,将cd放入代码所在的目录中,并尝试运行它。您将不得不提供更多详细信息。bash脚本到底是如何运行python脚本的?你的机器上有多个解释器吗?我的mac上有python 2.7和python 3.6,但这个脚本以#开头/usr/bin/python实际上是python2.7(如果有帮助的话),请显示您的bash脚本,或者至少在它调用python的地方。