【问题标题】:Issues in Installing Python packages in webfaction在 webfaction 中安装 Python 包的问题
【发布时间】:2014-09-02 00:19:25
【问题描述】:

我正在尝试使用 PIP 安装软件包,但它最初对我不起作用,它给出了权限被拒绝错误,然后当我尝试使用 easy_install 时,它给出了这个错误:->

 Searching for mezzanine
    Reading https://pypi.python.org/simple/mezzanine/
    Reading http://github.com/stephenmcd/mezzanine/
    Reading http://mezzanine.jupo.org/
    Best match: Mezzanine 3.1.8
    Downloading https://pypi.python.org/packages/source/M/Mezzanine/Mezzanine-3.1.8.tar.gz#md5=dcc46016b866ea8de1c87fb9dffd9163
    Processing Mezzanine-3.1.8.tar.gz
    Writing /tmp/easy_install-2cSSS_/Mezzanine-3.1.8/setup.cfg
    Running Mezzanine-3.1.8/setup.py -q bdist_egg --dist-dir /tmp/easy_install-2cSSS_/Mezzanine-3.1.8/egg-dist-tmp-uDjreS
    Traceback (most recent call last):
      File "/usr/local/bin/easy_install", line 8, in ?
        sys.exit(
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1924, in main
        with_ei_usage(lambda:
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1911, in with_ei_usage
        return f()
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1928, in <lambda>
        distclass=DistributionWithoutHelpCommands, **kw
      File "/usr/local/lib/python2.4/distutils/core.py", line 149, in setup
        dist.run_commands()
      File "/usr/local/lib/python2.4/distutils/dist.py", line 946, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python2.4/distutils/dist.py", line 966, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 374, in run
        self.easy_install(spec, not self.no_deps)
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 609, in easy_install
        return self.install_item(spec, dist.location, tmpdir, deps)
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 639, in install_item
        dists = self.install_eggs(spec, download, tmpdir)
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 825, in install_eggs
        return self.build_and_install(setup_script, setup_base)
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1031, in build_and_install
        self.run_setup(setup_script, setup_base, args)
      File "/usr/local/lib/python2.4/site-packages/setuptools/command/easy_install.py", line 1016, in run_setup
        run_setup(setup_script, args)
      File "/usr/local/lib/python2.4/site-packages/setuptools/sandbox.py", line 68, in run_setup
        DirectorySandbox(setup_dir).run(
      File "/usr/local/lib/python2.4/site-packages/setuptools/sandbox.py", line 120, in run
        return func()
      File "/usr/local/lib/python2.4/site-packages/setuptools/sandbox.py", line 71, in <lambda>
        {'__file__':setup_script, '__name__':'__main__'}
      File "setup.py", line 22
        with open(e, "r") as f:
                ^
    SyntaxError: invalid syntax

之后,当我再次尝试使用 pip 时,我得到了不同的错误(不是权限被拒绝):

 File "/home/rishi/bin/pip", line 8, in ?
    sys.exit(
  File "/usr/local/lib/python2.4/site-packages/pkg_resources.py", line 357, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.4/site-packages/pkg_resources.py", line 2394, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.4/site-packages/pkg_resources.py", line 2108, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/home/rishi/lib/python2.4/pip-1.5.6-py2.4.egg/pip/__init__.py", line 9, in ?
    from pip.log import logger
  File "/home/rishi/lib/python2.4/pip-1.5.6-py2.4.egg/pip/log.py", line 19
    real_consumer = (consumer if not isinstance(consumer, colorama.AnsiToWin32)
                               ^
SyntaxError: invalid syntax

现在我不知道我做错了什么,有人可以帮助我吗?

编辑:- 由于 python 版本错误,语法错误已解决,我使用的是 2.4。

OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/mezzanine'

$哪个pip结果是

~/bin/pip

【问题讨论】:

  • 您使用的是什么操作系统? Linux?视窗?你能显示调用 pip 的命令行吗?您是否管理安装其他软件包或任何问题都相同?
  • 你为什么使用 Python 2.4?这已经过时六年了。发生错误是因为所有这些包都使用 2.4 不支持的语法。
  • @JanVlcinsky linux 它是,Daniel 指出它是正确的我使用的是旧版本,但现在我回到主要错误 Permission denied
  • @DanielRoseman 感谢您指出版本,我完全不知道这一点,但是现在在正确的版本之后我又回到了主要错误 Permission denied: '/usr/local/lib/python2.7/site -packages/mezzanine',知道为什么吗?在我的 $ 之间,哪个 pip 结果是 ~/bin/pip
  • @Inforian 你可能没有使用virtualenv 是吗?在这种情况下,您尝试将包安装到系统 Python 中,并且必须使用 sudo 或以 root 身份运行命令。

标签: python django pip easy-install


【解决方案1】:

只需在您的 pip 命令中添加 --user 选项,它将使用您登录的用户权限进行安装:

pip2.7 install mezzanine --user

【讨论】:

    【解决方案2】:
    • 正如 Daniel Roseman 所指出的 - 语法错误来自使用 Python2.4
    • 权限问题是尝试安装到系统Python引起的,需要sudoroot

    可能的解决方案

    安装到系统 Pyhton(使用 sudo)

    $ sudo pip install mezzanine
    

    这会破坏系统Python,不太推荐。如果您是例如,那将是可以接受的。在 Docker 下。

    安装到用户配置文件中

    $ pip install --user mezzanine
    

    它将包安装到用户方案中,不会破坏系统Python。

    这更容易接受,但很快就会变成运行代码的混乱环境,因为 Python 有时会从系统导入表单用户方案。

    使用virtualenv

    假设你已经安装了 virtualenv:

    $ cd ~/projects
    $ mkdir mezza
    $ cd mezza
    $ virtualenv venv
    $ source venv/bin/activate
    (venv)$ pip install mezzanine
    $ pip freeze
    mezzanine==3.1.8
    

    (冻结后会有更多的行)。

    这会安装到 virtualenv 中,很容易重新创建、销毁,并且不会与其他环境混淆。

    使用virtulanevwrapper,您将获得一组额外的工具,这将大大简化您的环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多