簡體   English   中英

pip install insecureplatformwarning snimissingwarning ubuntu 14.04 python 2.7.6

[英]pip install insecureplatformwarning snimissingwarning ubuntu 14.04 python 2.7.6

運行pip安裝時,平台不安全,並且sni缺少警告。 我一直在嘗試按照以下錯誤消息中的建議進行操作,但運氣不佳:

https://urllib3.readthedocs.io/zh-CN/latest/security.html#insecureplatformwarning https://urllib3.readthedocs.io/zh-CN/latest/security.html#snimissingwarning https://urllib3.readthedocs.io/zh-CN Latest / user-guide.html#ssl-py2

我寫了一個小的Vagrant文​​件和Chef食譜來演示該問題,並可能會得到一些幫助。 警告會在每次安裝pip軟件包之前顯示。 我還嘗試了各種pip安裝選項組合,並更改了pip版本(8.1.2與9.0.1)。 任何幫助表示贊賞。

包含以下代碼的公共GitHub存儲庫: https : //github.com/marc-swingler/urllib_issue

要求:無業游民和VirtualBox

運行:無所事事

更新::找到了這個線程https://github.com/pypa/pip/issues/4098

事實證明,由於捆綁了libs,pip 9.0.1不能很好地播放。 另外,請安裝ndg-httpsclient而不是urllib3和/或請求。 不需要用戶指南中提到的apt軟件包,也不需要從頭開始構建,可以使用輪子。 安裝ndg-httpsclient后,警告將消失,其他pip安裝也將順利進行。 我也有一個這樣的版本,可以使用apt python-pip軟件包引導pip。 (如果有人感興趣,我會發布。)Apt最初會安裝pip v1.5.4。 然后,腳本更新為pip 8.1.2,並與以下代碼類似地進行。 只需在升級pip時刪除“ --disable-pip-version-check”選項即可。

Vagrantfile:

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network "private_network", type: "dhcp"
    config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
    config.vm.provision "chef_solo" do |chef|
            chef.add_recipe("foo")
    end
    config.vm.provider "virtualbox" do |v|
            v.memory = 4096
    end
end

食譜/ foo /食譜/default.rb:

pip_installer_path = '/tmp/get-pip.py'
remote_file "download_pip_installer" do
    path pip_installer_path
    source 'https://bootstrap.pypa.io/get-pip.py'
    owner 'root'
    group 'root'
    mode '0500'
    not_if 'which pip'
end
execute 'bootstrap_pip' do
    command "python #{pip_installer_path}"
    not_if "which pip"
end
cookbook_file 'delete_pip_installer' do
    path pip_installer_path
    action :delete
end

pip_packages = {
    'pip' => { 'version' => '8.1.2', 'extras' => nil },
    'ndg-httpsclient' => { 'version' => '0.4.3', 'extras' => nil },
    'botocore' => { 'version' => '1.7.18', 'extras' => nil },
    'pystache' => { 'version' => '0.5.4', 'extras' => nil }
}
pip_packages.each do |package_name, package_info|
    package_version = package_info['version']
    package_extras = package_info['extras']
    package_spec = package_name
    unless package_extras.nil? or package_extras.length < 1
        package_spec = package_spec + '['
        package_extras.each do |package_extra|
            package_spec = package_spec + package_extra + ','
        end
        package_spec[-1] = ']'
    end
    package_spec = package_spec + '==' + package_version
    execute package_spec do
        command "pip --disable-pip-version-check install -U #{package_spec}"
        not_if "test #{package_version} = `pip --disable-pip-version-check list 2>/dev/null | sed -rn 's/^#{package_name} \\(([0-9.]+)\\)/\\1/p'`"
    end
end

食譜/metadata.rb

name             'foo'
maintainer       'foo'
maintainer_email 'foo@foo.com'
license          'foo'
description      'foo'
long_description 'foo'
version          '0.0.0'

如上所述,我找到了解決方案。 https://github.com/marc-swingler/urllib_issue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM