python笔记---需求文件requirements.txt的创建及使用

来源:互联网 发布:汽车油耗计算器软件 编辑:程序博客网 时间:2024/05/16 10:21

http://blog.csdn.net/loyachen/article/details/52028825

Python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

在虚拟环境中使用pip生成:

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">(venv) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>pip freeze >requirements.txt</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

安装或升级包后,最好更新这个文件。

需求文件的内容示例如下:

<code class="hljs ini has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-setting" style="box-sizing: border-box;">alembic=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">bleach=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.4</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">click=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6.6</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">dominate=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.2</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.11</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-Bootstrap=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3.3</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6.0</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-Login=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.3</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-Migrate=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.8</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-Moment=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.5</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-PageDown=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.2</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-Script=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-SQLAlchemy=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Flask-WTF=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.12</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">html5lib=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.9999999</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">itsdangerous=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.24</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Jinja2=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.8</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Mako=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Markdown=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">MarkupSafe=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.23</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">PyMySQL=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.7</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">python-editor=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">six=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.10</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">SQLAlchemy=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">14</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">visitor=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.1</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">Werkzeug=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.11</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span></span></span><span class="hljs-setting" style="box-sizing: border-box;">WTForms=<span class="hljs-value" style="box-sizing: border-box;">=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2.1</span></span></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li></ul>

当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">(venv) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>pip install -r requirements.txt</code>
0 0