[英]How to run a python script in virtualenv
我在“ / home / user1 / public_html / cgi-bin”中有一個hello.py文件,其中顯示了python版本:
#!/usr/bin/python
import platform
print "Content-type: text/html\n\n"
print(platform.python_version())
當我轉到腳本的URL時,它在瀏覽器中顯示為“ 2.6.6”。
我想使用python 3.5,所以我在虛擬主機上的“ / home / user1 / virtualenv / testproject /”中安裝了virtualenv
當我嘗試將代碼的第一行更改為:
#!/home/user1/virtualenv/testproject/3.5/bin/python
import platform
print "Content-type: text/html\n\n"
print(platform.python_version())
該腳本將顯示“它有效!Python 3.5.5”,這不是我在腳本中編寫的代碼。
我應該將hello.py文件放入virtualenv目錄嗎? 還是我有不正確的python 3.5路徑? 還是我只是完全誤解了所有這些工作原理? 任何幫助,將不勝感激。
這肯定會解決您的問題
您的代碼是正確的,沒什么可擔心的,因為它將在解釋器中提供正確的輸出。
發生此問題的原因是,您在計算機上安裝了兩個版本的python,並且默認情況下,在環境變量的優先級中設置了python 2的路徑。
該腳本會在解釋器中提供正確的輸出,因為解釋器不需要路徑的優先級,但是當您從瀏覽器或命令提示符或控制台運行它時,則需要路徑,並且它會從系統環境變量中搜索python的路徑。它獲得了python 2的路徑,因此它顯示了python 2的版本
他們將是您解決問題的兩個解決方案,您可以做任何人。
從系統中卸載python 2。 這將立即解決您的問題。
如果要保留兩個版本的python,則要解決此問題,您必須在環境變量的優先級中設置python 3的路徑。 像這樣
在屏幕截圖中看到,Python 2的路徑在環境變量的上方,應該在Python 3的路徑下方
像這樣
博士的評論是正確的答案。 print
是Python 3中的一個函數,因此必須調用它: print("Content-type: text/html\\n\\n")
。 print-as-operator是Python 3中的SyntaxError。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.