为什么执行 `pip freeze` 命令会得到一个空文件?

4
我正在遵循Heroku上发布Django应用程序的教程
在代码的第5行,它说pip freeze > requirements.txt,但是当我运行它(从venv),requirements.txt文件是空的!之前它使用相同的代码生成了6-7个依赖项。
我该如何解决这个问题?

当你运行这个命令时,你能看到什么?你能看到一些东西吗? - German Alzate
3个回答

4
这可能意味着依赖项已在全局环境中安装好了。切换到虚拟环境,手动使用 pip install <dependency> 安装依赖项,然后运行 pip freeze 就可以输出依赖项了。

1
我一直在使用venv(也激活了它),但我从来没有想过事先自己安装依赖项。我会尝试一下。谢谢。 - jeff
在升级到Python 3之后,我遇到了这样的问题。我以前使用的pip freeze方法不再起作用(空列表)。我想这是一个路径问题(肯定需要在升级后更新Python(或PIP)路径;我必须自己查阅资料,因为我不确定如何做),但是在执行python3 -m pip freeze > requirements.txt之后,我又可以看到所有依赖项的列表了。 - Abpostman1
我在升级Python 3之后遇到了这样的问题。我以前使用的pip freeze的方法不再起作用了(空列表)。我猜是路径的问题(肯定需要在升级后更新Python(或PIP)的路径;我需要查阅资料,因为我不确定如何做)但是在执行python3 -m pip freeze > requirements.txt之后,我又能看到我所有依赖的列表了。 - undefined

1

此答案供后人参考

  • 这可能是由于 pip 被弃用了,所以可以通过使用以下命令升级 pip:
python -m pip install -–upgrade pip

然后像往常一样运行pip freeze > requirements.txt。这应该可以完成任务。


0
我遇到了同样的错误,但现在我已经找到解决方法了。我使用PowerShell(首选用于系统命令)设置了我的虚拟环境,并安装了依赖项,但我在Python shell中运行了命令"pip freeze > requuiremnts.txt"。当我在PowerShell上运行相同的命令时,requirements.txt中就会填充依赖项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接