簡體   English   中英

如何在virtualenv中運行python腳本

[英]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的版本

他們將是您解決問題的兩個解決方案,您可以做任何人。

  1. 從系統中卸載python 2。 這將立即解決您的問題。

  2. 如果要保留兩個版本的python,則要解決此問題,您必須在環境變量的優先級中設置python 3的路徑。 像這樣

在屏幕截圖中看到,Python 2的路徑在環境變量的上方,應該在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM