每当我运行pip
在Ubuntu 16.04中安装virtualenv
之类的Flask软件包时,都会出现此错误:
pip install virtualenv
Requirement already satisfied: virtualenv in ./.local/lib/python3.5/site-packages (16.1.0)
No metadata found in ./.local/lib/python3.5/site-packages
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/usr/.local/lib/python3.5/site-packages/virtualenv-16.1.0.dist-info/METADATA'
这是我的pip和python版本:
pip --version
pip 19.0.1 from /usr/.local/lib/python3.5/site-packages/pip (python 3.5)
python3 --version
Python 3.6.8
我已经尝试了从互联网上获取的几乎所有内容来解决此问题,例如:
/usr/.local/bin/pip install virtualenv
但是我仍然遇到相同的错误。
我也进入dist文件夹,以使用METADATA复制metadata.json,但是里面没有meta.json文件。
cd /usr/.local/lib/python3.5/site-packages/virtualenv-16.1.0.dist-info/
cp metadata.json METADATA
cp: cannot stat 'metadata.json': No such file or directory
请帮助我,我一直困扰着这个问题好几天了。 谢谢!
答案 0 :(得分:7)
我遇到同样的问题
ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/root/anaconda3/lib/python3.6/site-packages/tornado-6.0.4.dist-info/METADATA
然后我cd /root/anaconda3/lib/python3.6/site-packages/tornado-6.0.4.dist-info/ && ls
DESCRIPTION.rst LICENSE.txt metadata.json
最后,我做了cp metadata.json METADATA
解决了问题。
也许这对您有帮助。
答案 1 :(得分:3)
我最近遇到了同样的问题。
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/METADATA'
在文件夹中
~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/
我发现了另一个名为pip-19.0.1.dist-info
的文件,最后一个包含pip
的所有必需文件。
我刚刚使用
cd ~/.local/lib/python3.7/site-packages/pip-19.0.1.dist-info/
cp -r ./pip-19.0.1.dist-info/* ./
rm -r ./pip-19.0.1.dist-info
很显然,您需要用自己的版本替换python
版本,并检查是否有文件
entry_points.txt INSTALLER LICENSE.txt METADATA RECORD top_level.txt WHEEL
在这里。
也许会帮助您,运气。
答案 2 :(得分:1)
我认为您错误的根源是您的pip
配置为可与Python3.5一起使用(并在其特定的Python路径中查找元数据),而您的Python版本为3.6.8
我认为,使用内置venv
可以简化Python 3中的虚拟环境。另外,您的Python和Flask版本应该重合,但实际情况并非如此。
我建议您采取以下步骤
python3 -m venv /path/to/new/virtual/environment
cd /path/to/new/virtual/environment
source env/bin/activate
您现在拥有一个隔离的,干净的环境,在这里您只有一个Python版本。
运行pip install --upgrade pip
将虚拟环境点升级到与您的Python版本兼容的版本。
运行pip install flask
,然后从头开始安装整个堆栈,以使库和Python可执行版本对齐。
答案 3 :(得分:0)
我遇到同样的错误
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: '/home/vagrant/.local/lib/python3.7/site-packages/pip-18.1.dist-info/RECORD'
/ usr / bin / pip和/home/vagrant/.local/lib/python3.7/之间似乎存在冲突。
我的解决方案是避免该错误。
答案 4 :(得分:0)
我只是使用Python 3.6.5和pip 19.2.3在另一个软件包中遇到了这个问题。我很犹豫在这里使用解决方案(以及类似的SO问题),所以我只是尝试了以下方法,从而解决了问题:
pip install --force-reinstall package_with_metadata_issue
请注意,我的案件是在抱怨black
软件包,这是我尝试安装的其他软件包的依赖项(使用简单的pip install other_package
)。 Black已经安装并在我的系统上工作了一段时间,因此目前尚不清楚它是如何进入不良状态或pip发生了什么变化从而无法处理软件包的状态。
具体来说,OP可以尝试:
pip install --force-reinstall virtualenv
尽管这里似乎还有许多其他人对pip本身存在问题,所以可能只是将罐子踢了下去,直到pip处于良好状态为止。
答案 5 :(得分:0)
exit 0
解决了我的问题。当然,您需要重新安装对您有问题的软件包。使用pip重新安装它对我不起作用。