便携式python - 无法安装pip

ely*_*hiv 6 pip portable-python

我正试着点击我的USB驱动器.按照此网站上的说明进行操作,我下载get-pip.py并运行python get-pip.py(python位于环境路径中).不幸的是脚本通过错误.我已将日志文件上传到此处.错误本身是:

Exception:
Traceback (most recent call last):
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2251, in parsed_version
    return self._parsed_version
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2344, in __getattr__
    raise AttributeError(attr)
AttributeError: _parsed_version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2259, in version
    return self._version
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2344, in __getattr__
    raise AttributeError(attr)
AttributeError: _version

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\commands\install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\req.py", line 1420, in install
    if existing_distribute in distribute_requirement:
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2643, in __contains__
    if self.index: item = item.parsed_version  # only get if we need it
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2253, in parsed_version
    self._parsed_version = pv = parse_version(self.version)
  File "c:\users\elyashic\appdata\local\temp\tmprkcrtx\pip.zip\pip\_vendor\pkg_resources.py", line 2267, in version
    "Missing 'Version:' header and/or %s file" % self.PKG_INFO, self
ValueError: ("Missing 'Version:' header and/or PKG-INFO file", distribute [unknown version] (i:\portableapps\portable python 3.2.5.1\app\scripts))
Run Code Online (Sandbox Code Playgroud)

谁能向我解释我做错了什么?

我正在使用便携式python 3.2.5.1,它在安装之前是新鲜的,直到我尝试安装pip.

rap*_*dko 13

好的,如果“便携式 Python”指的是 Python.org 提供的可嵌入 zip 文件,那么本指南解决了我的问题:https ://michlstechblog.info/blog/python-install-python-with-pip-on-windows-by -可嵌入的 zip 文件/

\n\n

这是以防离线时的文本:

\n\n

要在 Windows 上安装 Python,请下载最新版本。在此示例中,Python 3.6.5。

\n\n

将 zip 文件解压到某个目录,例如 D:\\python3.6.5。

\n\n

要安装 pip,请将最新版本的get-pip下载到 python 安装路径并开始安装。

\n\n
> d:\\> cd /d D:\\Python3.6.5 D:\\Python3.6.5> python get-pip.py ...\n> Installing collected packages: pip, setuptools, wheel Successfully\n> installed pip-10.0.1 setuptools-39.2.0 wheel-0.31.1\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您位于代理后面,请添加 \xe2\x80\x93proxy 开关

\n\n
D:\\Python3.6.5> python get-pip.py --proxy="http://192.168.254.1:8888"\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,在默认配置中,您无法加载 pip 安装的任何模块,pip 本身也是如此。因为 sys.path 变量只包含 Python Zip 文件和 python 可执行文件所在的 python 目录的路径。

\n\n
>>> import sys\n>>> print(sys.path)\n[\'D:\\\\Python3.6.5\\\\python36.zip\', \'D:\\\\Python3.6.5\']\n>>> import pip\nTraceback (most recent call last):\n  File "<stdin>", line 1, in <module>\nModuleNotFoundError: No module named \'pip\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何通过设置 PYTHONPATH 变量来扩展变量的尝试都会被忽略。根本原因是可嵌入的 zip 文件安装包包含一个文件 python36._pth,该文件覆盖了设置 sys.path 变量的所有其他可能性。sys.path 包含 python 查找模块的所有目录。

\n\n

要设置 sys.path 变量,请打开 _pth 文件并在文件的 和 处添加以下路径。将 \xe2\x80\x9cD:\\Python3.6.5\xe2\x80\x9d 替换为您的安装目录。

\n\n
D:\\Python3.6.5\nD:\\Python3.6.5\\DLLs\nD:\\Python3.6.5\\lib\nD:\\Python3.6.5\\lib\\plat-win\nD:\\Python3.6.5\\lib\\site-packages\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者重命名 python36._pth 文件

\n\n
D:\\Python3.6.5> ren python36._pth python36._pth.save\n
Run Code Online (Sandbox Code Playgroud)\n\n

并为当前用户设置 PYTHONPATH 环境变量。

\n\n
setx PYTHONPATH "D:\\Python3.6.5;D:\\Python3.6.5\\DLLs;D:\\Python3.6.5\\lib;D:\\Python3.6.5\\lib\\plat-win;D:\\Python3.6.5\\lib\\site-packages"\n
Run Code Online (Sandbox Code Playgroud)\n\n

或对于整个系统

\n\n
setx /M PYTHONPATH "D:\\Python3.6.5;D:\\Python3.6.5\\DLLs;D:\\Python3.6.5\\lib;D:\\Python3.6.5\\lib\\plat-win;D:\\Python3.6.5\\lib\\site-packages"\n
Run Code Online (Sandbox Code Playgroud)\n


Aar*_*son 9

我使用相同版本的Portable Python 3.2.5.1遇到了同样的问题.由于脚本中存在一些语法错误,位于App\Scripts\easy_install.py中的easy_install.py脚本也被破坏了.

经过多次死胡同,我找到了https://winpython.github.io/.它取决于Portable Python停止的地方.


Whi*_*eAB 2

由于您使用的是 Portable Python,因此安装模块的最佳方法是使用简易安装。转到您的 Portable Python 文件夹目录: Portable Python 2.7.6.1.

接下来,通过在该位置打开命令提示符Shift + Right Click

然后输入以下内容:

App\Scripts\easy_install.exe YourModuleNameHere
Run Code Online (Sandbox Code Playgroud)

例子:

App\Scripts\easy_install.exe pyHook
Run Code Online (Sandbox Code Playgroud)

  • 我尝试以这种方式安装 pip 。我得到了与问题相同的错误。@卡维尔 (4认同)