安装Django时出错
我正在尝试在我昨天刚买的新Mac上安装Django。我之前用的是Windows系统,但我觉得这不应该是个大问题。每次我尝试安装1.6.5版本或者开发版本时,总是会出现同样的错误:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1435, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 671, in install
self.move_wheel_files(self.source_dir, root=root)
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 901, in move_wheel_files
pycompile=self.pycompile,
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/wheel.py", line 215, in move_wheel_files
clobber(source, lib_dir, True)
File "/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/wheel.py", line 205, in clobber
os.makedirs(destdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/django'
Storing debug log for failure in /Users/Peter/Library/Logs/pip.log
5 个回答
我在安装High Sierra的时候也遇到过类似的问题。在我的情况下,是pip版本的问题。即使
pip install --upgrade
这个命令也无法升级pip的版本。所以我把旧的pip/pip2.7/pip3从文件夹里删除了,然后重新安装了一遍。这样就安装了新的pip版本18。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
接着,
python get-pip.py
之后,一切就变得简单多了。
在安装之前,先用
which python
这个命令检查一下你默认的python版本。如果是3,那就没问题。如果不是的话,就打开bash配置文件,修改默认的python版本。(不过不太推荐这样做)。
你想在全局安装Python,并且需要管理员权限来安装额外的库。你可以用 sudo pip install django
来绕过这个限制。
不过,最好的做法是使用虚拟环境。这样你可以在多个Python项目中工作,每个项目都有自己的一套库。https://virtualenv.pypa.io/en/latest/
设置虚拟环境其实很简单:
首先安装pip,然后安装virtualenv,如果你愿意的话,还可以安装virtualenvwrapper:
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper
mkdir ~/.virtualenv
把这个添加到你的 ~/.profile 文件中:
export WORKON_HOME=~/.virtualenv
source /usr/local/bin/virtualenvwrapper.sh
这样就完成了。你可以用下面的命令创建一个叫“temp”的新虚拟环境:
mkvirtualenv temp
要开始在这个环境中工作,你可以使用:
workon temp
在这里你可以用 pip install django
来安装库,都是以你当前用户的身份进行的。要退出虚拟环境,只需输入:
deactivate
完整的说明可以在这里找到:http://virtualenvwrapper.readthedocs.org/en/latest/install.html
创建一个虚拟环境解决了我的问题。我最近安装了Python3.4,并想用它来运行Django 1.8.X。用sudo pip install安装Django后,默认的Python 2.7可以正常导入和使用,但尝试导入时却出现了错误。经过大约3小时的调查,我从不同的网站找到了我的解决方案……
在终端输入:
$ virtualenv -p /usr/local/bin etc/pythonX.X env
这条命令创建了一个叫做env的虚拟环境,并且特别使用了你想要的Python版本。你可以用$which pythonX.X来检查你的Python版本在哪里,然后用这个路径加上-p标志。用$python -V检查一下你默认使用的Python版本是否正确。然后
$ source env/bin/activate
在这个时候,你可以用pip安装你需要的包
$pip install django
一切都很好……运行:
$python
>>>import django
>>>django.VERSION
显示它已经成功导入了。希望这对你有帮助——这是我在Stack Overflow的第一篇帖子,希望我回答的风格是对的,也希望能帮到你!欢迎所有评论
这个错误是因为你的账户没有权限访问安装目录。如果安装目录是系统拥有的目录,你可能需要以 管理员
或 "root" 账户
的身份登录。
要以 root 身份登录:
sudo su
通过使用 setup_tool
,你可以轻松升级 django 的版本。在 Linux 系统上,你可以用以下命令安装 easy_install
:
sudo apt-get install python-setuptools
然后运行:
sudo easy_install --upgrade django
这样做会从 PYTHON_PATH
中移除当前的 django 路径,添加它自己的路径,并将 django 升级到最新版本。
试着用sudo来运行,这对我有效:
sudo pip install django