您的 PYTHONPATH 指向 Python 3.x 的站点包目录,但您正在运行 Python 2.x
Posted
技术标签:
【中文标题】您的 PYTHONPATH 指向 Python 3.x 的站点包目录,但您正在运行 Python 2.x【英文标题】:Your PYTHONPATH points to a site-packages dir for Python 3.x but you are running Python 2.x 【发布时间】:2017-06-06 02:23:57 【问题描述】:我在 macOS 10.12 上运行,我正在尝试使用以下方式安装 Django:
pip install Django==1.10.5
我收到此错误:
Your PYTHONPATH points to a site-packages dir for Python 3.x but you are running Python 2.x!
PYTHONPATH is currently: "/usr/local/lib/python3.6/site-packages:"
You should `unset PYTHONPATH` to fix this.
我在我的系统上安装了 Python3 和 Python2.7 以及 macOS,但我真的只想将 Python3 用于几乎所有事情。使用/配置 Python 很新,有其他人遇到过这个吗?
【问题讨论】:
如果你想使用 python3,请使用pip3
而不是 pip
。另外,考虑使用virtualenv
。
PYTHONPATH 和 virtualenv 的介绍,djangodeployment.com/2016/11/01/virtualenv-demystified
【参考方案1】:
你的PYTHONPATH
中根本不应该有site-packages
;对于适当版本的 Python,它已经在 sys.path
中,但是在 PYTHONPATH
中意味着其他版本的 Python 将尝试使用在那里找到的不兼容模块。找出你在哪里设置 PYTHONPATH
(它不应该在任何默认设置中发生,所以你可能在 ~/.bashrc
或类似手动做错了),然后停止这样做。如果你想不通,unset PYTHONPATH
会删除它。
由于您想使用 Python 3,请使用 pip3
进行包管理,而不是 pip
。
【讨论】:
你是说只有python2使用了site-packages文件夹? @GabrielFair:不,所有版本都使用它,但它位于lib/pythonX.Y/site-packages
下,其中 X 和 Y 是特定的 Python 版本。
谢谢。那时我的只是缺少那个文件夹。【参考方案2】:
您肯定希望使用virtualenv
将您的 Django 项目与系统 Python 版本分开。 virtualenv
创建一个虚拟环境——一个专门用于你的 Django 项目的 Python 版本——所以你不需要安装任何带有系统 Python 版本的库,它用于许多其他事情。 virtualenvwrapper
使使用 virtualenv
变得容易。 pip install virtualenvwrapper
是你的朋友。安装方法如下:
# Install virtualenvwrapper with the system Python version
pip install virtualenvwrapper
# Then, add these lines to your .bashrc, with the appropriate path to Python 3
# You can find the path to Python 3 with "which python3"
# virtualenvwrapper.sh is typically in /usr/bin or /usr/local/bin
export VIRTUALENV_PYTHON=/usr/local/bin/python3.5
source /usr/bin/virtualenvwrapper.sh
初始安装后,以下是使用 virtualenvwrapper 的方法:
# Make a virtualenv
mkvirtualenv my_project
# You're now in the environment for your project
pip install Django
# When you need to activate the virtualenv to work on your project
workon my_project
# Show the virtualenvs you've created - I use one for each Django or Python project I create
lsvirtualenv
更多内容:https://virtualenvwrapper.readthedocs.io/en/latest/
祝你好运!
【讨论】:
以上是关于您的 PYTHONPATH 指向 Python 3.x 的站点包目录,但您正在运行 Python 2.x的主要内容,如果未能解决你的问题,请参考以下文章
Django 错误 - 无法导入 Django。您确定它已安装并在您的 PYTHONPATH 环境变量中可用吗?
Linux添加PYTHONPATH方法以及3种修改环境变量方法
python需要设置哪些环境变量?我只知道一个PYTHONHOME指向安装目录。