2014-05-20 48 views
0

我有(2.7和3.4)安裝了多個版本的Python 我想運行的Python的特定版本.pyc文件呼叫蟒蛇編譯後的文件3

#! 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 由於當前腳本已經在Python版本中運行,我在shebang中詢問。 因此,我想讓子程序從相同版本的Python開始。

到目前爲止,我想:

#! C:\python34\python 
import os 
os.system("C:\python34\python print.pyc") 

這將是完美的,但不喜歡PYC文件。並且以下也不起作用:

exec(open('print.pyc').read()) 

是否有人知道如何調用代碼中的pyc文件?

+1

你有沒有試過:** os.system(「C:\\ python34 \\ python print.pyc」)**? – Mansueli

+0

不,因爲我希望不重複C:\ python34 \ python,因爲我的shebang工作正常。我想說:在同一個已經運行的python版本中運行pyc文件。 – Baghera

+1

你能更好地提出你的問題嗎?你說:** os.system(「C:\ python34 \ python print.pyc」)**會很好,但它不會*像pyc。*雖然它顯然沒有正確的反斜槓(\\反而\)在字符串中。 – Mansueli

回答

1
#! C:\python34\python 
import print # imports print.pyc 


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

是的,這是完美的: – Baghera

+0

@Baghera,如果這個答案是你正在尋找的,請接受它。 – Mansueli

+0

是的,這是完美的:
#! C:\ python34 \ python import print 這是run.py文件。
它使用我想要的Python版本啓動print.pyc應用程序,因爲我編譯了該應用程序。
謝謝 – Baghera