Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 - Fatal编程技术网

如何使Python脚本可移植到不同位置具有解释器的机器上?

如何使Python脚本可移植到不同位置具有解释器的机器上?,python,Python,我肯定这是有据可查的地方,但我找不到它!我想让我的脚本可以移植到可能没有Python解释器的机器上。出于这个原因,我认为我可以将第一行代码编码为#!python3而不是使用解释器的绝对路径,比如#/usr/local/bin/python3 毫无疑问,你们中的大多数人都明白为什么这不起作用,但我不知道。虽然我的实验伙伴们并不抱怨必须重新编码我的脚本以反映他们自己机器上解释器的绝对路径,但这似乎不必要。我非常乐意收到回复,提供到适当文档的链接。提前感谢。在#之后给出的路径是一条绝对路径,因此简单的

我肯定这是有据可查的地方,但我找不到它!我想让我的脚本可以移植到可能没有Python解释器的机器上。出于这个原因,我认为我可以将第一行代码编码为
#!python3
而不是使用解释器的绝对路径,比如
#/usr/local/bin/python3


毫无疑问,你们中的大多数人都明白为什么这不起作用,但我不知道。虽然我的实验伙伴们并不抱怨必须重新编码我的脚本以反映他们自己机器上解释器的绝对路径,但这似乎不必要。我非常乐意收到回复,提供到适当文档的链接。提前感谢。

#之后给出的路径是一条绝对路径,因此简单的
python3
不起作用。你应该使用

#!/usr/bin/env python3

在POSIX机器上的
路径中查找
python3
。当然,只有在Python解释器位于
PATH
环境变量中给定的某个目录中时,才会找到它。

之后给定的路径是一条绝对路径,因此简单的
python3
不起作用。你应该使用

#!/usr/bin/env python3

在POSIX机器上的
路径中查找
python3
。当然,只有当Python解释器位于
PATH
环境变量中给定的某个目录中时,才会找到它。

env
是一个处理此类事情的程序。您应该经常使用类似于
#的东西/usr/bin/env python3
作为您的shebang行,而不是指定绝对路径。

env
是一个处理此类事情的程序。您应该经常使用类似于
#的东西/usr/bin/env python3
作为你的shebang行,而不是指定一个绝对路径。

相关(但不是重复;我的google fu在这里失败;我肯定我以前见过这个问题…):相关(但不是重复;我的google fu在这里失败;我肯定我以前见过这个问题…):答案进入第一篇帖子,但是我真的很感激添加了关于
env
的信息,并且知道这是处理shebang行的正确方法。似乎是通过使用
#/usr/bin/env
您只是使用了一个绝对路径,而不是另一个,并且向另一个应用程序添加了依赖项。True。这一点得到了缓解,因为
/usr/bin/env
通常出现在那里,至少比您正在运行的任何其他程序都要多,而且它通常包含在您将要找到的任何*nix中的OOTB中,但是我真的很感激添加了关于
env
的信息,并且知道这是处理shebang行的正确方法。似乎是通过使用
#/usr/bin/env
您只是使用了一个绝对路径,而不是另一个,并且向另一个应用程序添加了依赖项。True。这一点得到了缓解,因为
/usr/bin/env
通常在那里找到,至少比您正在运行的任何其他程序都要多,而且它通常包含在您将要找到的任何*nix中。谢谢。我很确定我们都在使用POSIX机器。这把把戏做得很好。谢谢。我很确定我们都在使用POSIX机器。这完全成功了。