資源簡介
自己在網上找了很久,因為自己早期安裝的是2.7.6的Python,想安裝pip就是安裝不上,找了很多都是支持3.x的后來終于找到了 給大家分享下
代碼片段和文件信息
#!/usr/bin/env?python
#
#?Hi?There!
#?You?may?be?wondering?what?this?giant?blob?of?binary?data?here?is?you?might
#?even?be?worried?that?we‘re?up?to?something?nefarious?(good?for?you?for?being
#?paranoid!).?This?is?a?base85?encoding?of?a?zip?file?this?zip?file?contains
#?an?entire?copy?of?pip.
#
#?Pip?is?a?thing?that?installs?packages?pip?itself?is?a?package?that?someone
#?might?want?to?install?especially?if?they‘re?looking?to?run?this?get-pip.py
#?script.?Pip?has?a?lot?of?code?to?deal?with?the?security?of?installing
#?packages?various?edge?cases?on?various?platforms?and?other?such?sort?of
#?“tribal?knowledge“?that?has?been?encoded?in?its?code?base.?Because?of?this
#?we?basically?include?an?entire?copy?of?pip?inside?this?blob.?We?do?this
#?because?the?alternatives?are?attempt?to?implement?a?“minipip“?that?probably
#?doesn‘t?do?things?correctly?and?has?weird?edge?cases?or?compress?pip?itself
#?down?into?a?single?file.
#
#?If?you‘re?wondering?how?this?is?created?it?is?using?an?invoke?task?located
#?in?tasks/generate.py?called?“installer“.?It?can?be?invoked?by?using
#?‘‘invoke?generate.installer‘‘.
import?os.path
import?pkgutil
import?shutil
import?sys
import?struct
import?tempfile
#?Useful?for?very?coarse?version?differentiation.
PY2?=?sys.version_info[0]?==?2
PY3?=?sys.version_info[0]?==?3
if?PY3:
????iterbytes?=?iter
else:
????def?iterbytes(buf):
????????return?(ord(byte)?for?byte?in?buf)
try:
????from?base64?import?b85decode
except?ImportError:
????_b85alphabet?=?(b“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ“
????????????????????b“abcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_‘{|}~“)
????def?b85decode(b):
????????_b85dec?=?[None]?*?256
????????for?i?c?in?enumerate(iterbytes(_b85alphabet)):
????????????_b85dec[c]?=?i
????????padding?=?(-len(b))?%?5
????????b?=?b?+?b‘~‘?*?padding
????????out?=?[]
????????packI?=?struct.Struct(‘!I‘).pack
????????for?i?in?range(0?len(b)?5):
????????????chunk?=?b[i:i?+?5]
????????????acc?=?0
????????????try:
????????????????for?c?in?iterbytes(chunk):
????????????????????acc?=?acc?*?85?+?_b85dec[c]
????????????except?TypeError:
????????????????for?j?c?in?enumerate(iterbytes(chunk)):
????????????????????if?_b85dec[c]?is?None:
????????????????????????raise?ValueError(
????????????????????????????‘bad?base85?character?at?position?%d‘?%?(i?+?j)
????????????????????????)
????????????????raise
????????????try:
????????????????out.append(packI(acc))
????????????except?struct.error:
????????????????raise?ValueError(‘base85?overflow?in?hunk?starting?at?byte?%d‘
?????????????????????????????????%?i)
????????result?=?b‘‘.join(out)
????????if?padding:
????????????result?=?result[:-padding]
????????return?result
def?bootstrap(tmpdir=None):
????#?Import?pip?so?we?can?use?it?to?install?pip?and?maybe?setuptools?too
????import?pip
????from?pip.commands.install?import?InstallCommand
????from?pip.req?import?InstallRequirement
????#?Wrapper?to?provide?default?certificate?with?the?lowest?priority
????class?CertInstallCommand(
評論
共有 條評論