【问题标题】:Problem with django installation [python]django安装问题[python]
【发布时间】:2014-12-18 05:31:14
【问题描述】:

去年夏天我想学习做 web 开发,所以我安装了 Django 1.8,一个不稳定的版本。我在没有 pip 的情况下安装了它。我最近决定再试一次,但想使用稳定版本 1.7.1,并且为了简单起见想用 pip 安装。

我读到要删除没有 pip 安装的 Django,必须从 /Library/Python/2.7/site-packages/ 中删除整个 .egg,所以我这样做了。

从那时起,我就遇到了一些有趣的错误。当我发出“pip install django”时,我得到了

bash-3.2$ pip install django
Downloading/unpacking django
  Downloading Django-1.7.1-py2.py3-none-any.whl (7.4MB): 7.4MB downloaded
Installing collected packages: django
Cleaning up...
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'

当我检查虚假目录时,我发现 /django 不存在。 发出 sudo 会使错误消失,但我发现我仍然无法启动 django 项目。

有没有人见过这个或知道如何解决这个问题?

【问题讨论】:

标签: python django installation


【解决方案1】:

这并不是真正的错误 - 因为您的普通用户帐户无法写入全局 /Library 文件夹,所以您从操作系统收到此权限被拒绝错误。

最佳做法是在virtual environment 中工作,简称为virtualenv。这可确保您在试验 Python 包时不会意外损坏 Python 的系统范围安装。

在 Mac(您正在使用)上,可能还有其他依赖 Python 的系统实用程序,如果系统默认 Python 损坏,它们可能会停止工作。

所以第一步是在您的系统上全局安装 virtualenv。为此,您需要超级用户权限,但这只需要执行一次:

sudo easy_install virtualenv

上面会要求输入密码 - 只需输入您的普通用户密码。

上述命令完成后,作为普通用户,从命令行运行以下命令:

$ virtualenv my_env  # This creates a new Python environment called my_env, completely
                     # separate from your system wide install.
$ source my_env/bin/activate # Activates the virtual envrionment
(my_env) $ pip install django # Install django in this new environment the (my_env)
                              # indicates you are working inside a virtual environment

...

(my_env) $ deactivate  # Deactivates the environment,
                       # returning you to the normal system Python
$

您在虚拟环境中安装的任何东西都只能在虚拟环境中使用,因此您需要确保在运行脚本时处于正确的环境中。

【讨论】:

  • 这是一个单独的问题,但我很好奇,因为我从未做过 virtualenv 的东西——我还能在虚拟环境的实例中使用普通的版本控制(例如,git)吗?
  • 当然,虚拟环境只是一种操作路径和shell的方式,因此自定义安装Python的优先级高于系统Python。除此之外,它不会做任何其他“魔法”。因此,您可以使用所有常规开发工具和 IDE / 编辑器。
【解决方案2】:

我想通了。我必须去/usr/local/bin/ 并删除对我的django 1.8 安装(django-admin 等)的所有引用,然后按照说明安装virtualenvwrapper 并在虚拟环境中工作。

【讨论】:

    【解决方案3】:

    为避免virtualenv,我建议在 Mac OS 上使用pip install --user Django

    将软件包安装在类似于以下位置的位置:

    ~/Library/Python/2.7/lib/python/site-packages

    来自pip install --help

    --user                      Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows.
                                  (See the Python documentation for site.USER_BASE for full details.)
    

    然后再用 virtualenv 和 virtualenvwrapper are the recommended method 来安装 Django,我想?

    【讨论】:

      【解决方案4】:

      首先,需要设置一个虚拟环境或workon并激活它。

      pip install Django

      pip install -U Django

      pip install -e django

      【讨论】:

        【解决方案5】:

        Windows 用户: 以(以管理员身份运行)启动 power shell 或以(以管理员身份运行)启动 CMD 运行以下命令后

        最新版本:

        pip install Django
        

        或者对于以前的版本,例如2.2

        pip install Django==2.2
        

        【讨论】:

          【解决方案6】:

          运行以下命令:

          sudo pip install Django
          

          【讨论】:

          • 全局安装是个坏主意。
          猜你喜欢
          • 2020-07-17
          • 1970-01-01
          • 1970-01-01
          • 2023-04-09
          • 2010-09-25
          • 2011-12-20
          • 1970-01-01
          • 2019-04-15
          相关资源
          最近更新 更多