在 PythonAnywhere 中使用 Virtualenv 时 Python 版本错误
Wrong Python version when using Virtualenv in PythonAnywhere
为了使用 Python 3.3 和 Django 1.8,我正在使用 Virtualenv(用于 PythonAnywhere 中的 Web 应用程序)
我遵循了以下说明:
https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango
进入控制台,它显示我使用的是 3.3 版:
(django18)12:04 ~ $ python
Python 3.3.6 (default, Jan 28 2015, 17:27:09)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
这也是我指定要在我的网络应用程序中使用的版本:
Python version:3.3 (in the code pane)
但是,当我在 Virtualenv 窗格中指向 Virtualenv 目录(名为 django18)时,我收到以下警告:
This virtualenv seems to have the wrong Python version (2.7 instead of 3.3).
这是控制台的全部内容(我在创建应用程序并指定 Python 版本后 运行 它):
06:43 ~ $ mkvirtualenv --python=/usr/bin/python3.3 django18
Running virtualenv with interpreter /usr/bin/python3.3
Using base prefix '/usr'
New python executable in django18/bin/python3.3
Not overwriting existing python script django18/bin/python (you must use django18/b
in/python3.3)
Installing setuptools, pip, wheel...done.
(django18)06:44 ~ $ which pip
/home/yschellekens/.virtualenvs/django18/bin/pip
(django18)06:44 ~ $ pip install django
Requirement already satisfied (use --upgrade to upgrade): django in ./.virtualenvs/
django18/lib/python3.3/site-packages
(django18)06:44 ~ $ which django-admin.py
/home/yschellekens/.virtualenvs/django18/bin/django-admin.py
(django18)06:44 ~ $ django-admin.py --version
1.8.3
(django18)06:44 ~ $ django-admin.py startproject mysite
CommandError: '/home/yschellekens/mysite' already exists
另见:
08:29 ~/.virtualenvs/django18/bin $ ls
__pycache__ django-admin.py pip postdeactivate python3
activate django-admin.pyc pip2 preactivate python3.3
activate.csh easy_install pip2.7 predeactivate wheel
activate.fish easy_install-2.7 pip3 python
activate_this.py easy_install-3.3 pip3.3 python2
django-admin get_env_details postactivate python2.7
08:29 ~/.virtualenvs/django18/bin $
我还应该指向哪里 Python 3.3?
Not overwriting existing python script django18/bin/python
因为您使用 python 2.7 创建环境,然后使用 python 3.3,django18/bin/python 脚本仍指向 python 2.7。编辑 django18/bin/python
或删除环境并仅使用 mkvirtualenv --python=/usr/bin/python3.3 django18
命令。
旧答案:
根据您提供的link:
TIP: if you want to use Python 3 for your virtualenv, use mkvirtualenv
--python=/usr/bin/python3.4 django18
https://www.pythonanywhere.com/wiki/VirtualEnvForNewerDjango
在我看来,您的 virtualenv 以某种方式获得了 Python 的 2.7 版和 3.3 版。尝试删除它并重新创建它:
rmvirtualenv django18
mkvirtualenv --python=/usr/bin/python3.3 django18
pip install django # reinstall django and any other packages you need.
为什么不顺便用Python3.4呢?
为了使用 Python 3.3 和 Django 1.8,我正在使用 Virtualenv(用于 PythonAnywhere 中的 Web 应用程序)
我遵循了以下说明: https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango
进入控制台,它显示我使用的是 3.3 版:
(django18)12:04 ~ $ python
Python 3.3.6 (default, Jan 28 2015, 17:27:09)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
这也是我指定要在我的网络应用程序中使用的版本:
Python version:3.3 (in the code pane)
但是,当我在 Virtualenv 窗格中指向 Virtualenv 目录(名为 django18)时,我收到以下警告:
This virtualenv seems to have the wrong Python version (2.7 instead of 3.3).
这是控制台的全部内容(我在创建应用程序并指定 Python 版本后 运行 它):
06:43 ~ $ mkvirtualenv --python=/usr/bin/python3.3 django18
Running virtualenv with interpreter /usr/bin/python3.3
Using base prefix '/usr'
New python executable in django18/bin/python3.3
Not overwriting existing python script django18/bin/python (you must use django18/b
in/python3.3)
Installing setuptools, pip, wheel...done.
(django18)06:44 ~ $ which pip
/home/yschellekens/.virtualenvs/django18/bin/pip
(django18)06:44 ~ $ pip install django
Requirement already satisfied (use --upgrade to upgrade): django in ./.virtualenvs/
django18/lib/python3.3/site-packages
(django18)06:44 ~ $ which django-admin.py
/home/yschellekens/.virtualenvs/django18/bin/django-admin.py
(django18)06:44 ~ $ django-admin.py --version
1.8.3
(django18)06:44 ~ $ django-admin.py startproject mysite
CommandError: '/home/yschellekens/mysite' already exists
另见:
08:29 ~/.virtualenvs/django18/bin $ ls
__pycache__ django-admin.py pip postdeactivate python3
activate django-admin.pyc pip2 preactivate python3.3
activate.csh easy_install pip2.7 predeactivate wheel
activate.fish easy_install-2.7 pip3 python
activate_this.py easy_install-3.3 pip3.3 python2
django-admin get_env_details postactivate python2.7
08:29 ~/.virtualenvs/django18/bin $
我还应该指向哪里 Python 3.3?
Not overwriting existing python script django18/bin/python
因为您使用 python 2.7 创建环境,然后使用 python 3.3,django18/bin/python 脚本仍指向 python 2.7。编辑 django18/bin/python
或删除环境并仅使用 mkvirtualenv --python=/usr/bin/python3.3 django18
命令。
旧答案:
根据您提供的link:
TIP: if you want to use Python 3 for your virtualenv, use mkvirtualenv --python=/usr/bin/python3.4 django18
https://www.pythonanywhere.com/wiki/VirtualEnvForNewerDjango
在我看来,您的 virtualenv 以某种方式获得了 Python 的 2.7 版和 3.3 版。尝试删除它并重新创建它:
rmvirtualenv django18
mkvirtualenv --python=/usr/bin/python3.3 django18
pip install django # reinstall django and any other packages you need.
为什么不顺便用Python3.4呢?