我刚刚将我的软件包的新版本上传到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而不是?
pip缓存文件夹在哪里?我在安装过程中遇到错误,现在使用缓存文件重新安装包
那个目录在哪里?我希望备份它们以便将来安装.可能吗 ?
例如,我有这个:
Using cached cssselect-0.9.1.tar.gz
Run Code Online (Sandbox Code Playgroud)
我搜索谷歌这个目录,但我看到的任何东西,是学习如何从文件夹安装,我想找到默认的缓存目录.
另一个问题,这些缓存文件将保留在该目录中或将很快删除?
这个问题同样是关于我的特定问题的问题(我发现这是一个解决问题,因此它不是一个燃烧的问题),因为它与我正在使用的一般过程有关.
我在我的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.
更新: 我在miniconda上尝试了@ user2258766建议.它最初非常有前景.但是,当我安装了scipy numpy matplotlib sympy时,miniconda文件夹的大小很快就会增长到1G.
如果我想使用我提到的4个包,这是否意味着安装的最小尺寸是1G.为什么他们这么大?是否仍然可以进一步缩小安装尺寸?
-
Scipy网站推荐Anaconda.
但它为我安装了许多不相关的软件包.
我可以使用最小的发行版吗?
我只想要Scipy,Sympy,Numpy和Maplotlib,而不是其他人.
另一个相关问题是,为什么这些Python包之间有如此多的依赖关系?
我是用Java编程的,现在看到这些Python软件包(例如Scipy)与其他许多软件包相比如此紧密,感觉有点不舒服.为什么会这样?一个合理的解释可能使在Python中开始编码更加舒适.
谢谢.
我正在使用Windows.谢谢.我使用Java并且是Python的新手.
当试图通过以下方式下载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) 我正在尝试使用以下内容升级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 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) 我想运行一个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) 我正在尝试在 Windows 10 中的 Python Django 项目中pyaudio
安装。pipwin
我首先在 Windows 10 中以管理员身份运行 CMD。然后运行命令:
\npipwin install pyaudio\n
Run Code Online (Sandbox Code Playgroud)\n我收到以下错误:
\nraise HTTPError(req.full_url, code, msg, hdrs, fp)\nurllib.error.HTTPError: HTTP Error 404: Not Found\n
Run Code Online (Sandbox Code Playgroud)\n命令的完整输出:
\nPackage `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) 是否有 pip 命令(如果有)可以删除因 pip 安装而导致的过多空间,而不影响现有软件包的操作?
我正在使用 python 3.7
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) 我试图用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 ×12
pip ×9
django ×1
installation ×1
iot ×1
matplotlib ×1
numpy ×1
pubnub ×1
python-2to3 ×1
python-3.x ×1
raspberry-pi ×1
scipy ×1
setuptools ×1
virtualenv ×1
windows ×1