相关疑难解决方法(0)

为什么pip安装我的包的旧版本?

我刚刚将我的软件包的新版本上传到PyPi(1.2.1.0-r4):我可以下载egg文件并使用easy_install进行安装,版本检查正确.但是当我尝试使用pip进行安装时,它会安装版本1.1.0.0.即使我明确指定要使用的版本pip install -Iv tome==1.2.1.0-r4,我也会得到这样的信息:Requested tome==1.2.1.0-r4, but installing version 1.1.0.0但我不明白为什么.

我仔细检查parse_version并确认1.2.1上的版本字符串大于1.1.0上的版本字符串,如下所示:

>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
Run Code Online (Sandbox Code Playgroud)

所以任何想法为什么选择安装1.1.0而不是?

python pip setuptools

71
推荐指数
6
解决办法
2万
查看次数

pip缓存文件夹在哪里

pip缓存文件夹在哪里?我在安装过程中遇到错误,现在使用缓存文件重新安装包

那个目录在哪里?我希望备份它们以便将来安装.可能吗 ?

例如,我有这个:

Using cached cssselect-0.9.1.tar.gz
Run Code Online (Sandbox Code Playgroud)

我搜索谷歌这个目录,但我看到的任何东西,是学习如何从文件夹安装,我想找到默认的缓存目录.

另一个问题,这些缓存文件将保留在该目录中或将很快删除?

python pip

67
推荐指数
4
解决办法
6万
查看次数

在切换到不同的Python二进制文件后,强制`pip`重新编译以前安装的包(numpy)

这个问题同样是关于我的特定问题的问题(我发现这是一个解决问题,因此它不是一个燃烧的问题),因为它与我正在使用的一般过程有关.


设置(有效的部分):

我在我的Ubuntu 14.04上本地安装了Python 2.7.9,我有一个virtualenv,我正在运行它.一切都与"系统"Python分开,我没有触及.


我做的部分:

这一切都开始得很好,安装了我的Python并运行了所有库.例如,我也pip安装了numpy 1.10.1,它编译了一段时间,然后它运行得很好.

问题:

问题是,由于我无法控制的原因,我不得不重启python并ucs4启用,即我使用它安装它

./configure --enable-unicode=ucs4
Run Code Online (Sandbox Code Playgroud)

执行此操作后,我还卸载了所有库并使用pip重新安装它们.但是,似乎numpy库没有正确卸载,因为它这次立即安装,当我尝试导入numpy到我的新Python时,我收到一条错误消息,指出numpy是用ucs2-enabled Python 编译的.

这个假设非常可靠,因为我曾经尝试过pip install numpy==1.9.3.安装再次花了很长时间,它产生了一个适用于新ucs4启用的Python的numpy版本.

现在,我的问题:

如何才能获得numpy卸载过程以删除旧numpy的所有痕迹?


编辑:

我还尝试通过从virtualenv site-packages目录中删除它来手动删除numpy .删除后,按预期import numpy返回ImportError.然后我重新安装它(pip install numpy)然后它返回了相同的ucs2错误.

编辑2:

sys.path我的virtualenv Python 完全看到了

['',
 '/home/jkralj/.virtualenvs/work/lib/python27.zip',
 '/home/jkralj/.virtualenvs/work/lib/python2.7',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/plat-linux2',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-tk',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-old',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7.9/lib/python2.7',
 '/usr/local/lib/python2.7.9/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7.9/lib/python2.7/lib-tk',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/site-packages']
Run Code Online (Sandbox Code Playgroud)

另外,重要的是要提到/usr/local/lib/python2.7.9/python 的安装没有安装numpy.

python installation numpy pip virtualenv

19
推荐指数
2
解决办法
2万
查看次数

运行Sympy,Scipy,Numpy和Matplotlib的最小python发行版

更新: 我在miniconda上尝试了@ user2258766建议.它最初非常有前景.但是,当我安装了scipy numpy matplotlib sympy时,miniconda文件夹的大小很快就会增长到1G.

在此输入图像描述

如果我想使用我提到的4个包,这是否意味着安装的最小尺寸是1G.为什么他们这么大?是否仍然可以进一步缩小安装尺寸?

在此输入图像描述

-

Scipy网站推荐Anaconda.

但它为我安装了许多不相关的软件包.

我可以使用最小的发行版吗?

我只想要Scipy,Sympy,Numpy和Maplotlib,而不是其他人.

另一个相关问题是,为什么这些Python包之间有如此多的依赖关系?

我是用Java编程的,现在看到这些Python软件包(例如Scipy)与其他许多软件包相比如此紧密,感觉有点不舒服.为什么会这样?一个合理的解释可能使在Python中开始编码更加舒适.

谢谢.

我正在使用Windows.谢谢.我使用Java并且是Python的新手.

python matplotlib scipy

9
推荐指数
2
解决办法
6412
查看次数

如何安装django 1.4

当试图通过以下方式下载django:

sudo pip uninstall django
Run Code Online (Sandbox Code Playgroud)

但是,这会下载新版本的django 1.5.我如何通过pip强制下载1.4版本?这是我在尝试安装时得到的:

imac9:site-packages pdadmin$ sudo pip install django==1.4.1
Downloading/unpacking django==1.4.1
  Running setup.py egg_info for package django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
  Requested django==1.4.1, but installing version 1.5.1
Installing collected packages: django
    Found existing installation: Django 1.5.1
Run Code Online (Sandbox Code Playgroud)

python django

8
推荐指数
1
解决办法
9030
查看次数

pip(1.3.1)在删除本地缓存之前不升级包

我正在尝试使用以下内容升级PACKAGENAME:

pip install --index http://pypi.MYSITE.com/simple/ --upgrade PACKAGENAME
Run Code Online (Sandbox Code Playgroud)

我经常看到没有从服务器下载文件,并pip说所有软件包都安装成功,但是当我检查安装的版本时,它不是服务器上的最新版本.

但是,如果我删除pip缓存并再次运行上述命令,它从服务器下载文件并安装最新版本.有没有人遇到过这个问题?

我找到的一个解决方法是将--ignore-installed参数传递给pip install,但这会导致pip从服务器下载所有包,即使已经安装了最新版本.

python pip

6
推荐指数
1
解决办法
910
查看次数

如何修复我的包中的“.dist-info directory not found”?

我有一个 Python 2 包,我正在尝试升级到 Python 3。它是由曾经在我现在所在的同一团队工作但不再在公司工作的人编写的,不幸的是没有人离开团队能够提供帮助。

在包的文件上运行 2to3 后,我跑去python setup.py sdist创建一个包,将包放在本地存储库中,然后尝试使用pip install来安装包。它最终出现以下错误:

Exception:
Traceback (most recent call last):
  File "/home/user/project/lib/python3.5/site-packages/pip/basecommand.py", line 223, in main
    status = self.run(options, args)
  File "/home/user/project/lib/python3.5/site-packages/pip/commands/install.py", line 297, in run
    root=options.root_path,
  File "/home/user/project/lib/python3.5/site-packages/pip/req/req_set.py", line 622, in install
    **kwargs
  File "/home/user/project/lib/python3.5/site-packages/pip/req/req_install.py", line 808, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/home/user/project/lib/python3.5/site-packages/pip/req/req_install.py", line 1003, in move_wheel_files
    isolated=self.isolated,
  File "/home/user/project/lib/python3.5/site-packages/pip/wheel.py", line 340, in move_wheel_files
    assert info_dir, "%s .dist-info directory not found" % req
AssertionError: my-package-name .dist-info directory …
Run Code Online (Sandbox Code Playgroud)

python pip python-2to3

6
推荐指数
1
解决办法
9115
查看次数

即使存在,如何重新安装软件包

我想运行一个pip install -r requirements.txt命令;

我想一次又一次地运行相同的命令;

问题在于,其中requirements.txt将包括一些车轮文件,这些车轮文件可能具有相同的版本,但源代码不同;

我想确保该软件包将被重新安装,即从我的自定义pip存储库中再次获取;

我知道这个话题,但是对我来说,--ignore-installed和之间的区别--force-reinstall似乎并不十分清楚。

我有例如somepack==1.1,我更改了源代码,我希望在执行时从我的回购中再次.whl获取它;pip install

我应该使用哪一个?我应该同时将两者合并吗?

他们有什么区别?

该软件包可能具有相同的版本,例如,somepack==1.1 或者在某个时候可能具有增量版本。例如somepack==1.2

我希望它总是被(重新)安装;

编辑:这是help点,至少在上述问题上我不太清楚

  --force-reinstall           Reinstall all packages even if they are already up-to-date.
  -I, --ignore-installed      Ignore the installed packages (reinstalling instead).
Run Code Online (Sandbox Code Playgroud)

python pip

6
推荐指数
2
解决办法
4834
查看次数

为什么在 Windows 10 中的 Python Django 项目中使用 pipwin 安装 pyaudio 时出现“HTTP 错误 404:未找到”?

我正在尝试在 Windows 10 中的 Python Django 项目中pyaudio安装。pipwin

\n

我首先在 Windows 10 中以管理员身份运行 CMD。然后运行命令:

\n
pipwin install pyaudio\n
Run Code Online (Sandbox Code Playgroud)\n

我收到以下错误:

\n
raise HTTPError(req.full_url, code, msg, hdrs, fp)\nurllib.error.HTTPError: HTTP Error 404: Not Found\n
Run Code Online (Sandbox Code Playgroud)\n

命令的完整输出:

\n
Package `pyaudio` found in cache\nDownloading package . . .\nhttps://download.lfd.uci.edu/pythonlibs/z4tqcw5k/PyAudio-0.2.11-cp38-cp38-win_amd64.whl\nPyAudio-0.2.11-cp38-cp38-win_amd64.whl\nTraceback (most recent call last):\n  File "C:\\Users\\...\\AppData\\Local\\Programs\\Python\\Python38\\Scripts\\pipwin-script.py", line 11, in <module>\n    load_entry_point('pipwin==0.5.1', 'console_scripts', 'pipwin')()\n  File "c:\\users\\...\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\pipwin\\command.py", line 103, in main\n    cache.install(package)\n  File "c:\\users\\...\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\pipwin\\pipwin.py", line 300, in install\n    wheel_file = self.download(requirement)\n  File "c:\\users\\...\\appdata\\local\\programs\\python\\python38\\lib\\site-packages\\pipwin\\pipwin.py", line 294, in …
Run Code Online (Sandbox Code Playgroud)

python windows pip

6
推荐指数
1
解决办法
5000
查看次数

What are some pip commands to remove excess space stored by pip installation?

是否有 pip 命令(如果有)可以删除因 pip 安装而导致的过多空间,而不影响现有软件包的操作?

我正在使用 python 3.7

python pip python-3.x

5
推荐指数
2
解决办法
6515
查看次数

pip 错误 /tmp/ 中没有文件/目录

No files/directories in /tmp/*当我尝试在我的 Ubuntu 18.04.2 LTS/Python 3.6.8/Python 2.7.15+ 机器上安装任何软件包时出现错误。

例如,

pip install pyx
Collecting pyx
  Using cached https://files.pythonhosted.org/packages/f7/25/59c136568c1b61ee087155c874fcd9f7196a943a6a5ee3429efeb30ea2a8/PyX-0.15.tar.gz
No files/directories in /tmp/pip-build-nRurCC/pyx/pip-egg-info (from PKG-INFO)
Run Code Online (Sandbox Code Playgroud)

我尝试安装的每个软件包都会发生这种情况。

  • sudo 没有帮助。
  • 此处提出的解决方案,使用--no-cache-dir option,无济于事。

使用vvv选项运行 pip install 命令的输出提供以下输出。

No files/directories in /tmp/pip-build-VU1cex/pyx/pip-egg-info (from PKG-INFO)
Exception information:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    requirement_set.prepare_files(finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line …
Run Code Online (Sandbox Code Playgroud)

python pip

3
推荐指数
1
解决办法
5426
查看次数

ImportError:无法导入名称Pubnub

我试图用Pubnub平台控制我的Raspberry Pi上的LED.我刚开始,我尝试了这个教程:

https://www.pubnub.com/blog/2015-05-27-internet-of-things-101-getting-started-w-raspberry-pi/

但是,当我想执行一个使用以下行导入Pubnub库的Python文件时:

from pubnub import Pubnub

我收到此错误消息:

ImportError: cannot import name Pubnub

我按照教程中的说法完成了所有工作.我甚至从他们的Github存储库中复制了.py类.

这是我的班级:

import RPi.GPIO as GPIO
import time
import sys
from pubnub import Pubnub

GPIO.setmode (GPIO.BCM)

LED_PIN = 17

GPIO.setup(LED_PIN,GPIO.OUT)

pubnub = Pubnub(publish_key='xxxx', subscribe_key='xxxx')

channel = 'disco'

def _callback(m, channel):
        print(m)
        if m['led'] == 1:
                for i in range(6):
                    GPIO.output(LED_PIN,True)
                    time.sleep(0.5)
                    GPIO.output(LED_PIN,False)
                    time.sleep(0.5)
                    print('blink')

def _error(m):
        print(m)

pubnub.subscribe(channels=channel, callback=_callback, error=_error)
Run Code Online (Sandbox Code Playgroud)

python raspberry-pi pubnub iot raspberry-pi2

2
推荐指数
1
解决办法
4527
查看次数