我在“ / 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,所以我让Webhost在“ / 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路径?还是我只是完全误解了所有这些工作原理?任何帮助将不胜感激。
答案 0 :(得分:0)
phd的评论是正确的答案。 print
是Python 3中的函数,因此必须调用它:print("Content-type: text/html\n\n")
。 print-as-operator是Python 3中的SyntaxError。
答案 1 :(得分:-1)
这肯定会解决您的问题
您的代码是正确的,不用担心,因为它将在解释器中提供正确的输出。
发生此问题是因为您在计算机上安装了两个版本的python,并且默认情况下,在环境变量的优先级中设置了python 2的路径。
该脚本会在解释器中提供正确的输出,因为解释器不需要路径的优先级,但是当您从浏览器或命令提示符或控制台运行它时,则需要路径,并且它会从系统环境变量中搜索python的路径。情况下,首先获取python 2的路径,以使其显示python 2的版本
他们将为您的问题提供两种解决方案,您可以做任何人。
从系统中卸载python 2。这将立即解决您的问题。
如果要同时保留两个版本的python,则要解决此问题,必须在环境变量的优先级中设置python 3的路径。像这样
在屏幕截图中看到,Python 2的路径在环境变量中位于上方,应该在Python 3的路径下方
赞