先介绍一下环境:

  • 真正要执行的python的文件是在一个docker容器,里面的文件是root的权限
  • 里面文件是映射在宿主机的一个文件夹下 ,宿主机只是普通用户权限

操作过程

  • 我想要在宿主机运行一下,但程序需要要几个依赖的python模块
  • 执行了 pip install -r requirement.txt
  • pip的版本太低了 要求pip version 20.1 而宿主机的pip 只是 20.0.2()
  • 提示:WARNING: You are using pip version 20.0.2; however, version 20.1 is available.

You should consider upgrading via the '/usr/bin/python -m pip install --upgrade pip' command.

  • 按照提示要求 执行了/usr/bin/python -m pip install --upgrade pip
  • 又提示了这个WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/54/2e/df11ea7e23e7e761d484ed3740285a34e38548cf2bad2bed3dd5768ec8b9/pip-20.1-py2.py3-none-any.whl
    主要是国内的网络的原因 : 想一下 看有没有国内的源。。

  • 然后执行完了 pip也升级上去了

然后我就执行 pip install -r ...... (<u>这里有个坑,其实我没想到后面和权限有关系</u>) 运行成功了也装上了

  • 当我要执行 python XXXXX.py 因为权限的原因宿主机的普通用户的权限执行不了容器文件的root的,(<u>其实改一下权限就行,这就让我很迷惑了</u>)

问了一下好心的群友: 他叫我看一下 sudo python -m pip freezepython -m pip freeze 有没有区别

确实 加了 sudo 少了那几个模块

然后我再 重新 sudo pip install -r requirement.txt

就重新安装上了 程序也运行了起来了

而容器我也想执行一下, 但pip没有安装

安装的方法有好几种(我尝试两种)

  • 脚本安装

    • curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py (下载速度简直无敌了,差点把我整睡了)
    • python get-pip.py
  • 源码包安装

    1. https://pypi.org/project/pip/#files
    2. wget --no-check-certificate https://files.pythonhosted.org/packages/d1/05/059c78cd5d740d2299266ffa15514dad6692d4694df571bf168e2cdd98fb/pip-20.1.tar.gz ( 速度也是慢得可以)
    3. wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-20.1.tar.gz
    4. tar -zxvf pip-20.1.tar.gz
    5. cd pip-20.1
    6. python setup.py build
    7. python setup.py install

我用的是第二种,还有其他的。比如yum apt-get

总结(<u>也不知道对不对</u>)

  1. sudo python 和 python有区别的 (以后能改权限就改权限,不要这样折腾),建议不要用sudo ,好像官方也是不提倡这样做的
  2. pip 安装python依赖模块 可以 pip install -r requirement.txt -i https://pypi.doubanio.com/simple 临时换成国内的源
  3. pip 的安装, 最好是去官网下载源码包来进行安装
最后修改:2021 年 07 月 19 日 08 : 53 AM
如果觉得我的文章对你有用,请随意赞赏