【问题标题】:How to install python packages in travis without sudo?如何在没有 sudo 的情况下在 travis 中安装 python 包?
【发布时间】:2017-05-19 12:25:56
【问题描述】:

在我的 travis 脚本中禁用了 sudo,因此我无法执行“pip install”来安装 python 包。有没有其他方法可以在没有 sudo 的情况下安装 python 包?

使用以下命令仍然失败

install:
  - pip install -U pip
  - pip install <whatever>



$ pip install -U pip

You are using pip version 6.0.8, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pip from https://pypi.python.org/packages/b6/ac/7015eb97dc749283ffdec1c3a88ddb8ae03b8fad0f0e611408f196358da3/pip-9.0.1-py2.py3-none-any.whl#md5=297dbd16ef53bcef0447d245815f5144
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |################################| 1.3MB 457kB/s 
Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Exception:
      Traceback (most recent call last):
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/basecommand.py", line 232, in main
          status = self.run(options, args)
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/commands/install.py", line 347, in run
          root=options.root_path,
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/req/req_set.py", line 543, in install
          requirement.uninstall(auto_confirm=True)
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/req/req_install.py", line 667, in uninstall
          paths_to_remove.remove(auto_confirm)
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/req/req_uninstall.py", line 126, in remove
          renames(path, new_path)
        File "/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/pip/utils/__init__.py", line 316, in renames
          shutil.move(old, new)
        File "/usr/lib/python2.7/shutil.py", line 297, in move
          rmtree(src)
        File "/usr/lib/python2.7/shutil.py", line 245, in rmtree
          rmtree(fullname, ignore_errors, onerror)
        File "/usr/lib/python2.7/shutil.py", line 250, in rmtree
          onerror(os.remove, fullname, sys.exc_info())
        File "/usr/lib/python2.7/shutil.py", line 248, in rmtree
          os.remove(fullname)
      OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pip-6.0.8-py2.7.egg/EGG-INFO/PKG-INFO'

【问题讨论】:

标签: python unix github travis-ci


【解决方案1】:

根据official doc

sudo: false 默认用于 2015 年或之后启用的存储库

.travis.yml属性install:后面可以写pip install,应该支持pip。

language: python
python:
  - "2.7"
install:
  - pip install --user -U pip
  - pip install --user <whatever>

【讨论】:

  • 如果从.travis.yml 中删除pip install -U pip 行会怎样?
  • 首先,在您的情况下尝试使用pip install --user。如果还是失败,请提供你的yml文件,根本原因可能是你的环境设置。
【解决方案2】:

sudo: 标签现已在 Travis CI 中完全弃用。 sudo 命令始终可用。

【讨论】:

    猜你喜欢
    • 2018-08-19
    • 2012-07-23
    • 2019-08-04
    • 2014-09-05
    • 1970-01-01
    • 2021-10-05
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多