安装Django时出错

3 投票
5 回答
7193 浏览
提问于 2025-04-18 11:55

我正在尝试在我昨天刚买的新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 个回答

0

我在安装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版本。(不过不太推荐这样做)。

0

你想在全局安装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

1

创建一个虚拟环境解决了我的问题。我最近安装了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的第一篇帖子,希望我回答的风格是对的,也希望能帮到你!欢迎所有评论

2

这个错误是因为你的账户没有权限访问安装目录。如果安装目录是系统拥有的目录,你可能需要以 管理员"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 升级到最新版本。

3

试着用sudo来运行,这对我有效:

sudo pip install django

撰写回答