我在PyCharm中创建了一个项目,该项目使用安装在PyCharm创建的Python 3.6.1虚拟环境中的flask(在其他一些模块中),并且应用程序本身在PyCharm中运行良好。但是,当我为其他虚拟需求设置requirements.txt文件时,我注意到输出文件中只列出了virtualenv
。 (为了创建文件,我去了“console”并执行了“pip freeze> requirements.txt”。)
在测试了一些东西之后,我注意到pip list
只给了我三个模块开始安装。我知道这不是真的,因为当我进入我的解释器设置时,PyCharm说安装了很多其他模块,但它们似乎并没有实际安装。
如何有效地在PyCharm中创建需求文件?我是否只需要列出我在自述文件中安装的所有模块,并让我的用户了解如何自行安装它们?
屏幕截图如下:
答案 0 :(得分:2)
使用pipreqs
$ pip install pipreqs
$ pipreqs /home/project/location
Successfully saved requirements file in /home/project/location/requirements.txt
这会将当前项目目录中使用的包导出到requirements.txt
请参阅pipreqs
为什么不冻结?
答案 1 :(得分:0)
这当然很奇怪,我唯一能想到的是它在Windows上virtualenv
出现了问题。
无论如何,从requirements.txt
创建pip freeze
不是最佳做法,因为您安装的软件包数量超过项目所需的软件包。
E.g。假设你的项目只需要Flask:
$ pip install Flask
$ pip freeze
click==6.7
Flask==0.12.2
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
Werkzeug==0.12.2
正如您通过安装Flask所看到的那样,安装了更多的软件包,但您不必在requirements.txt
中列出这些软件包,因为它们不是您的项目要求,而是Flask的要求。
因此,您应手动构建requirements.txt
。我通常做的是pip install Flask; pip freeze |grep Flask
并将行Flask==0.12.2
复制到我的requirements.txt
,每次我使用pip
安装时都这样做。