2016-11-17 87 views
-1

我甚至不確定這個問題是否可以回答。 基本上在我的遊戲中,我使用colorama功能來使它看起來不錯,但只有在命令提示符下訪問python時才能使用colorama功能,所以我的問題是如何讓python程序通過命令提示符運行另一個,是是否可行?我已經嘗試安裝win32,但它是Python 2格式,我使用3.4,所以我得到的語法錯誤,我不知道如何解決。程序通過命令提示符運行另一個

+0

如果您使用的是Windows,所有Python腳本在運行時都會在CMD Prompt中執行 - 默認情況下,所以我沒有看到您的問題。你問什麼是可能的,只是,你在什麼操作系統? – Dalen

+0

im在Windows上,但是當我運行python.exe colorama doesnt工作,但運行時使用命令行和打字py和python加載(顯然)和colorama工程那裏 – WhatsThePoint

回答

1

我不知道爲什麼會發生這種情況,我的意思是,如果沒有從提示開始,colorama無法正常工作。

也許與環境變量PATH什麼的東西。

這是一個建議,我不確定它會工作,因爲我們不會改變窗口程序正在運行,只需調用cmd.exe即命令提示符在其中啓動,然後再次啓動python和腳本。

但它是值得一試:

# Start of your program: 
import sys, os 

if "started_with_prompt" not in sys.argv: 
    cmd = 'cmd /C "'+sys.executable+' '+" ".join(sys.argv)+' started_with_prompt"' 
    os.system(cmd) 
    sys.exit() 
print "the rest of your program" 

如果這不起作用,有可能通過子模塊可以用來做類似的事情的技巧。 此外,您應該查看cmd.exe的幫助,以查看是否應使用/ C以外的其他開關來啓用環境和/或註冊表擴展。

但是,從本質上講,您應該能夠通過使用命令(如cmd變量中的一個)或啓動Python的批處理文件創建快捷方式來獲得相同的結果。像這樣:

@echo off 
cmd /C "C:\Python27\python.exe path_to_your_script.py" 

我認爲兩者都可以,但不知何故,你不會喜歡這個解決方案。

嗯,我想該快捷方式將需要一個完整的路徑,其中cmd.exe的是: C:\ WINDOWS \ SYSTEM32 \ cmd.exe的

讓我知道,如果它不能正常工作。

+0

謝謝,我試過第一個建議,它的工作,不完全確定它在做什麼,但它起作用是主要的。再次感謝。 – WhatsThePoint

+0

1.它檢查它是如何運行的。 2.如果只是點擊它,就會運行命令提示符和Python中的腳本以及腳本。向調用添加一個開關,告訴腳本它運行時有提示。 3.如果它與交換機一起運行,它假定它由命令提示符調用並繼續執行您的程序。所以,你的程序啓動兩次。點擊後不能使用Colorama,然後在命令提示符下調用它自己,然後它可以使用它,以便完成它的工作。但是這個解決方法不應該是必須的。沒有這個混亂,可以做一些事情來達到相同的結果。 – Dalen

+0

但我沒有Colorama,所以我不知道這裏發生了什麼。正如我寫的,你的程序啓動的控制檯在第一次和第二次調用時保持不變。所以它必須是某種環境設定的方式(最可能)。在if之前和之後嘗試打印os.environ,以查看最終的差異。如果您看到任何重大更改,而不是我的混亂,請在導入Colorama之前將其添加到os.environ。也許這就夠了。 – Dalen

相關問題