【问题标题】:Calling python compiled files in Python 3在 Python 3 中调用 python 编译文件
【发布时间】: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 可执行文件的路径。

标签: python pyc execfile


【解决方案1】:
#! C:\python34\python
import print # imports print.pyc


#now you can use the pyc as a module. 
DoSomething()

【讨论】:

  • 是的,这很完美:
  • @Baghera,如果这个答案是你想要的,请接受它。
  • 是的,这很完美:
    #! C:\python34\python import print 这是run.py文件。
    它用我想要的Python版本启动print.pyc应用程序,因为我编译了这个应用程序。
    谢谢
猜你喜欢
  • 2016-08-10
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 2020-05-15
  • 2021-04-17
  • 1970-01-01
相关资源
最近更新 更多