鸡蛋碎片的 Pip 安装问题导致软件包的未知安装

Mar*_*eid 8 python macos pip python-2.7

我收到了一台 MacBook Pro,需要确保我们的一些 Python 2.7 脚本在该笔记本电脑上运行,并在 Windows 机器上顺利运行。

MacBook 很旧,2008,OS X 10.11.6

我在这台笔记本电脑上使用 pip install 安装某些软件包时遇到问题,我在这里寻求帮助作为最后的手段。首先,Python 2.7.10 已安装并顺利运行。Pip install 也适用,但不适用于所有软件包。首先,我安装了 python-vlc 包:

pip install python-vlc --user
Run Code Online (Sandbox Code Playgroud)

完成无误。然后我运行我们的脚本,它使用 import vlc 导入包

python script.py
Run Code Online (Sandbox Code Playgroud)

造成

回溯(最近通话最后一个):文件“script.py”,第30行,在进口VLC文件“/Users/admin/Library/Python/2.7/lib/python/site-packages/vlc/初始化的.py”,行4、在 from vlc.helper import tell File "/Users/admin/Library/Python/2.7/lib/python/site-packages/vlc/helper.py", line 4, in import applescript File "/Users/admin/ Library/Python/2.7/lib/python/site-packages/applescript/ init .py", line 3, in import only ImportError: No module named only

似乎我只需要安装软件包:

pip install only --user
Run Code Online (Sandbox Code Playgroud)

这导致

仅收集安装收集的包:仅例外:回溯(最近一次调用最后一次):文件“/Library/Python/2.7/site-packages/pip/_internal/cli/base_command.py”,第 143 行,主状态 = self。运行(选项,参数)文件“/Library/Python/2.7/site-packages/pip/_internal/commands/install.py”,第 366 行,运行中 use_user_site=options.use_user_site,文件“/Library/Python/2.7/站点包/pip/_internal/req/ init.py", line 49, in install_given_reqs **kwargs File "/Library/Python/2.7/site-packages/pip/_internal/req/req_install.py", line 760, in install use_user_site=use_user_site, pycompile=pycompile, File “/Library/Python/2.7/site-packages/pip/_internal/req/req_install.py”,第 382 行,在 move_wheel_files 中 warn_script_location=warn_script_location,文件“/Library/Python/2.7/site-packages/pip/_internal/wheel .py", line 326, in move_wheel_files assert info_dir, "%s .dist-info directory not found" % req AssertionError: only .dist-info directory not found

所以,尝试手动下载它

pip download only
Run Code Online (Sandbox Code Playgroud)

造成

仅收集运行 setup.py(路径:/private/var/folders/jp/6s5zvb6s0kb19qdgy33sbkf40000gq/T/pip-download-C2CG6U/only/setup.py)egg_info 仅生成项目名称未知的元数据。修复您的 #egg=only 片段。 下载成功未知

我不太确定如何解决这个问题。如果我尝试继续安装,不管

pip install only-1.0.2.tar.gz --user
Run Code Online (Sandbox Code Playgroud)

处理 ./only-1.0.2.tar.gz 为收集的包构建轮子:UNKNOWN 运行 setup.py bdist_wheel for UNKNOWN ... done 存储在目录:/Users/admin/Library/Caches/pip/wheels/13/bb /2c/bbbba0f8e56cc66e91a845dc17f9ba7045e5871aa88062798f 成功构建UNKNOWN 安装收集包:UNKNOWN 发现现有安装:UNKNOWN 0.0.0 卸载UNKNOWN-0.0.0:成功安装UNKNOWN-0.0.0.0.0.0.0.0.0.0.0.0.0.0成功卸载UNKNOWN

导致此“未知”安装,因为它显示在 pip 列表中。现在,谷歌搜索显示有些人有同样的问题,他们可以通过更新 setuptools 来解决它。这台笔记本电脑上的 setuptools 版本是 1.1.6,所以我尝试更新它

pip install setuptools --upgrade --user
Run Code Online (Sandbox Code Playgroud)

收集 setuptools 使用缓存的https://files.pythonhosted.org/packages/82/a1/ba6fb41367b375f5cb653d1317d8ca263c636cff6566e2da1b0da716069d/setuptools-40.5.30-10-40.5.0-10-10.script-40.5.0-10-10.script-40.5.0-h12 . applescript 0.0.1 需要 temp,但未安装。 安装收集到的包:setuptools 成功安装 setuptools-40.5.0

它说它成功安装了 setuptools 40.5,但它没有,因为 pip list 保持不变。我回到了第一点,因为我只需要安装包(和临时),但这会导致“未知”安装。Applescript 是 0.0.1 版。我无法升级它,因为它仅尝试安装软件包,但失败了。

我的猜测是我需要在仅安装(和临时)包时解决 egg-info 问题,但我不知道如何解决。有谁知道如何解决这个安装问题?

Sin*_*uin 15

我跑了这个

pip install setuptools --upgrade

...然后当我 #egg\UNKNOWN 安装一个包时再次安装。


Mar*_*eid 5

我找到了解决方法。如果人们有类似的问题,我希望这会有所帮助:

我根据setuptools规范手动编写了一个setup.py文件。

from setuptools import setup, find_packages

setup(name='only',
      version='1.0.2',
      packages=find_packages(),
     )
Run Code Online (Sandbox Code Playgroud)

然后进入下载包的解压文件夹(在本例中仅在 pip 下载后,进入 only-1.0.2 目录)。执行

python setup.py install
Run Code Online (Sandbox Code Playgroud)

你就可以走了。