【发布时间】:2014-05-20 15:57:27
【问题描述】:
我安装了多个 Python 版本(2.7 和 3.4) 我想用指定版本的 Python 运行 .pyc
#! C:\python34\python
import sys
print("Hello",sys.version.split()[0])
input()
这个sheebang在Windows上运行良好,因为我使用pylauncher 所以我可以这样编译
c:\python34\python -m compileall print.py -b
但是执行pyc文件时无法识别sheebang。
这可行,但我不想重复C:\python34\python
因为当前脚本已经在我在 shebang 中询问的 Python 版本下运行。
因此,我想让子程序以相同版本的 Python 启动。
到目前为止,我尝试过:
#! C:\python34\python
import os
os.system("C:\python34\python print.pyc")
这将是完美的,但不喜欢 pyc 文件。以下内容也不起作用:
exec( open('print.pyc').read() )
有人知道如何调用代码中的pyc文件吗?
【问题讨论】:
-
你试过了吗:os.system("C:\\python34\\python print.pyc") ?
-
不,因为我不想重复 C:\python34\python 因为我的 shebang 工作正常。我想说:在同一个已经运行的python版本中运行那个pyc文件。
-
你能更好地表述你的问题吗?您说:os.system("C:\python34\python print.pyc") 可以,但它不 喜欢 pyc。 虽然它显然不在字符串中有正确的反斜杠(\\ 而不是 \ )。
-
它与“C:\\python34\\python print.pyc”、“C:\\\python34\\\python print.pyc”、“C:/python34/python”一起使用print.pyc”和“C:\python34\python print.pyc”。但既然路过shebang没问题,我不想重复了。
-
你试过 os.system(sys.executable+" print.pyc") 吗? sys.executable 是刚刚运行的 python 可执行文件的路径。