首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带嵌入式python的pip

带嵌入式python的pip
EN

Stack Overflow用户
提问于 2017-03-08 08:12:27
回答 6查看 42.4K关注 0票数 37

我从这里安装了名为“Windowsx86-64可嵌入的zip文件”的嵌入式python,但是它没有安装pip,它也没有站点包,当我尝试执行python get-pip.py时,它失败了,因为其中包含了import pip。那么如何在嵌入式python环境中安装pip呢?

追溯(最近一次调用):文件".\getpip.py",第20061行,主()文件".\getpip.py",第194行,主引导(tmpdir=tmpdir)文件".\getpip.py",第82行,引导导入pip文件“,第961行,在_find_and_load文件”,第950行,在_find_and_load_unlocked文件"",第646行,在_load_unlocked文件“,第616行,在_load_backward_compatible中

目录结构是:

代码语言:javascript
复制
Directory: C:\Downloads\python-3.6.1rc1-embed-win32

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         3/4/2017   7:26 PM         157344 pyexpat.pyd
-a----         3/4/2017   7:26 PM          97952 python.exe
-a----         3/4/2017   7:26 PM          58016 python3.dll
-a----         3/4/2017   7:26 PM        3263648 python36.dll
-a----         3/4/2017   7:26 PM        2209284 python36.zip
-a----         3/4/2017   7:26 PM             79 python36._pth
-a----         3/4/2017   7:26 PM          96416 pythonw.exe
-a----         3/4/2017   7:26 PM          23200 select.pyd
-a----         3/4/2017   7:26 PM         866464 sqlite3.dll
-a----         3/4/2017   7:26 PM         895648 unicodedata.pyd
-a----         3/4/2017   7:26 PM          83784 vcruntime140.dll
-a----         3/4/2017   7:26 PM          24224 winsound.pyd
-a----         3/4/2017   7:26 PM          45216 _asyncio.pyd
-a----         3/4/2017   7:26 PM          77984 _bz2.pyd
-a----         3/4/2017   7:26 PM         101536 _ctypes.pyd
-a----         3/4/2017   7:26 PM         215712 _decimal.pyd
-a----         3/4/2017   7:26 PM         156832 _elementtree.pyd
-a----         3/4/2017   7:26 PM        1042592 _hashlib.pyd
-a----         3/4/2017   7:26 PM         183456 _lzma.pyd
-a----         3/4/2017   7:26 PM          32416 _msi.pyd
-a----         3/4/2017   7:26 PM          25760 _multiprocessing.pyd
-a----         3/4/2017   7:26 PM          33952 _overlapped.pyd
-a----         3/4/2017   7:26 PM          61600 _socket.pyd
-a----         3/4/2017   7:26 PM          64160 _sqlite3.pyd
-a----         3/4/2017   7:26 PM        1458848 _ssl.pyd
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-05-24 22:47:49

我最近也遇到了同样的问题。我查看了pip的文档,他们似乎说这个用例不受支持等等。但是无论如何,这是我让模块工作的方法。

我安装了,我的意思是将嵌入式python解压缩到一个名为d:\python的目录中。我假设模块将驻留在同一个目录中。

首先,要安装pip模块,我需要保存提取的文件。我使用支持unix行终止符的文本编辑器更改了get-pip.py,方法是从get-pip.py文件中包含的blob中删除删除临时和解压缩树的rmtree行。

我改变了两个地点,但只需要最后一个。我在两个位置更改的行是:

代码语言:javascript
复制
shutil.rmtree(tmpdir, ignore_errors=True)

我对它进行了修改(我不想麻烦于python缩进块):

代码语言:javascript
复制
print('shutil.rmtree(tmpdir, ignore_errors=True)')

现在,我在修改后的get-pip.py上运行了python D:\python\python.exe,并找到了文件被解压缩到的临时目录。

我将这个目录(检查它是否包含一个.py)文件复制到python:\python(这是我希望模块驻留的地方),确保D:\python\pip目录包含.py文件。

pip模块现在安装在python目录中,但是您需要进一步破解pip以删除上面的异常。为此,我更改了locations.py文件(在我的例子中位于D:\python\pip\locations.py中),以返回D:\python的bin_py和bin_user位置。

ie:

代码语言:javascript
复制
86 if WINDOWS:
....
bin_py = 'd:/python'
bin_user = 'd:/python'

我不得不将用于pip的user_dir更改为在这个驱动器上能够在多个VM之间共享的位置。

pip模块现在运行良好,如

d:\python\python.exe -m pip ..。

票数 11
EN

Stack Overflow用户

发布于 2018-02-21 13:07:57

即使明确声明了可嵌入的Python的版本不支持Pip,也是可能的。你需要:

  1. 下载并解压缩Python 可嵌入拉链文件。
  2. 在文件python39._pth或类似文件中,取消对import命令的注释。结果应该类似于这一点: python39.zip进口地点
  3. 下载get-pip.py到Python文件夹
  4. 运行get-pip.py。这会将Pip安装到Scripts目录中: python get-pip.py
  5. 直接从命令行运行Pip,因为Pip是一个可执行程序(本例用于安装Pandas): .\Scripts\pip安装熊猫

您可以在和平执行方案第4207期中找到有关这方面的更多信息。

票数 67
EN

Stack Overflow用户

发布于 2019-04-29 10:35:26

如何将pip安装到可嵌入的python发行版中:

  1. 在那里解压python可嵌入发行版存档和cd
  2. 运行python ./get-pip.py (got 这里)
  3. 或者只是在文件pythonXX._pth 复制文件夹中取消注释字符串import site (至少从新创建的文件夹Lib/site-packages/ into pythonXX.zip )。

现在可以使用python -m pip ...

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42666121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档