<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Enviroment on 双生介の个人博客</title><link>https://gaoxz03.github.io/tags/enviroment/</link><description>Recent content in Enviroment on 双生介の个人博客</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Sun, 17 Nov 2024 23:45:48 +0800</lastBuildDate><atom:link href="https://gaoxz03.github.io/tags/enviroment/index.xml" rel="self" type="application/rss+xml"/><item><title>Qt环境配置</title><link>https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/</link><pubDate>Sun, 17 Nov 2024 23:45:48 +0800</pubDate><guid>https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/</guid><description>&lt;h1 id="qt环境配置"&gt;Qt环境配置&#10;&lt;/h1&gt;&lt;p&gt;本文主要对Windows + WSL的Qt环境配置进行说明。代码编辑工具对VScode和Clion进行了说明，理论上来说使用nvim等其他支持cmake的工具也可以进行配置，但不在此处进行说明（&lt;del&gt;因为真的没有用过&lt;/del&gt;）。另外本文仅针对Qt Widgets进行说明。&lt;/p&gt;&#10;&lt;h2 id="windows环境配置"&gt;Windows环境配置&#10;&lt;/h2&gt;&lt;h3 id="基础环境配置"&gt;基础环境配置&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;在下列网址下载Qt 非商用版本在线安装包，选择对应的系统及CPU架构进行下载。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;a class="link" href="https://www.qt.io/download-qt-installer-oss" target="_blank" rel="noopener"&#10; &gt;https://www.qt.io/download-qt-installer-oss&lt;/a&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;下载后运行并输入在Qt官网注册的账号和密码后。阅读协议并根据个人情况进行勾选或输入公司名称。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117211329046" class="gallery-image" data-flex-basis="369px" data-flex-grow="153" height="977" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211329046.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211329046_hu_630d6b6ceb168299.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211329046.png 1504w" width="1504"&gt;&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;配置Qt的安装路径并选择自定义安装。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117211553000" class="gallery-image" data-flex-basis="369px" data-flex-grow="153" height="977" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211553000.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211553000_hu_9a1b3fb22c9b04b0.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211553000.png 1504w" width="1504"&gt;&lt;/p&gt;&#10;&lt;ol start="4"&gt;&#10;&lt;li&gt;根据个人需求选择Qt的版本及相关的编译工具。如果需要安装Qt5需要选中右侧筛选器的Archive选项。如果在这一步安装了不需要的工具链或者少装了所需的工具链，后续可在Qt Maintenance Tool中进行安装或者删除，基本流程与安装类似。对于Windows平台最好在 Developer and Designer Tools 处将对应的工具链勾选一起安装。cmake和ninja-build如果已经安装可以不勾选。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117211727296" class="gallery-image" data-flex-basis="364px" data-flex-grow="151" height="1509" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211727296.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211727296_hu_1866bcbb121b872a.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211727296_hu_244cf9c4f205b035.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211727296.png 2292w" width="2292"&gt;&lt;/p&gt;&#10;&lt;blockquote class="alert alert-important"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📌&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;重要&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;在Windows中使用mingw工具链时最好使用Qt安装工具安装对应的mingw工具链而不是选择自行下载类似w64devkit之类的发行版。就算已经自行安装了gcc、g++工具，最好也使用Qt Maintenance Tool安装一个对应的mingw版本。在安装的时候需要注意保持 Qt 中选择的mingw版本与 Developer and Designer Tools 中勾选的mingw版本保持一致。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;ol start="5"&gt;&#10;&lt;li&gt;确认并勾选已阅读协议，点击Next进行安装并等待完成。至此Qt已经安装完成。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117211920002" class="gallery-image" data-flex-basis="364px" data-flex-grow="151" height="1509" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211920002.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211920002_hu_bb990a9ce1bc87a3.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211920002_hu_e163f542d63b1376.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117211920002.png 2292w" width="2292"&gt;&lt;/p&gt;&#10;&lt;h3 id="vscode配置"&gt;VScode配置&#10;&lt;/h3&gt;&lt;p&gt;如果不想使用Qt Creator进行代码编辑，可以在使用QC创建完工程后使用VScode打开。&lt;/p&gt;&#10;&lt;p&gt;如果需要使用VScode进行Qt开发，需要在VScode中搜索并安装Qt C++ Extension Pack。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117212845579" class="gallery-image" data-flex-basis="441px" data-flex-grow="183" height="2088" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212845579.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212845579_hu_cbac4a8982a769cc.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212845579_hu_756517b748a85d3.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212845579_hu_c722a3d2b3c6ef03.png 2400w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212845579.png 3840w" width="3840"&gt;&lt;/p&gt;&#10;&lt;p&gt;之后用 &lt;code&gt;ctrl + shift + p&lt;/code&gt; 打开VScode的命令面板，并在其中搜索：Qt Register Qt Installation，并将该路径配置到Qt的安装路径下。如果路径配置正确，Qt将自动添加对应的gcc、g++、ninja等工具链。&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117212959871" class="gallery-image" data-flex-basis="441px" data-flex-grow="183" height="2088" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212959871.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212959871_hu_521de7a065a6aed.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212959871_hu_a2dd876992bb0858.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212959871_hu_e683676b539ff139.png 2400w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117212959871.png 3840w" width="3840"&gt;&lt;/p&gt;&#10;&lt;blockquote class="alert alert-important"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;📌&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;重要&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;在VScode中配置Qt的安装路径时需要注意将路径选择到Qt文件夹中。例如：在Qt安装时选择在&lt;code&gt;D:\Dev_Tools\Qt&lt;/code&gt;路径下，在VScode中进行配置的时候也需要选择到&lt;code&gt;D:\Dev_Tools\Qt&lt;/code&gt;，而不能只选择到&lt;code&gt;D:\Dev_Tools&lt;/code&gt;。&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;最后最好在QC生成的CMakeLists.txt文件中加入以下语句：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmake" data-lang="cmake"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的安装路径为 D:/Dev_Program/Qt ，并且创建的工程使用的是5.15.2版本的mingw8.1 64位工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;D:/Dev_Program/Qt/5.15.2/mingw81_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 如果不进行该项配置，在不能在Terminal中读取到qDebug()的消息。&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;lt;PROJECT-NAME&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;PROPERTIES&lt;/span&gt; &lt;span class="s"&gt;WIN32_EXECUTABLE&lt;/span&gt; &lt;span class="s"&gt;FALSE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;配置完成后即可在VScode中进行Qt的项目开发。&lt;/p&gt;&#10;&lt;h3 id="clion配置"&gt;Clion配置&#10;&lt;/h3&gt;&lt;p&gt;如果不想使用QC或者VScode进行开发，也可以使用Clion进行开发。配置Clion中的Qt环境可遵循以下步骤:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;在创建工程的时候选择Qt的版本及对应的工具链。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117215253486" class="gallery-image" data-flex-basis="295px" data-flex-grow="123" height="976" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117215253486.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117215253486_hu_d8876c3b1a9e816d.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117215253486.png 1203w" width="1203"&gt;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;图示为使用Qt 5.15.2 mingw8.1的工具链进行开发。这一步相当于在配置CMakeLists.txt中Cmake预设的路径。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;在 &lt;code&gt;Build,Execution,Deplotment -&amp;gt; Toolchains&lt;/code&gt; 中配置好与Qt一起安装的工具链的位置。图示为Qt Maintenance Tool在 &lt;code&gt;D:\Dev_Program\Qt\&lt;/code&gt; 路径下与Qt一起安装的mingw的位置。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117220047367" class="gallery-image" data-flex-basis="421px" data-flex-grow="175" height="1081" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117220047367.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117220047367_hu_baebf209b339b5fd.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117220047367_hu_4c301d98c17fa04a.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117220047367.png 1898w" width="1898"&gt;&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;在 &lt;code&gt;Tools -&amp;gt; External Tools&lt;/code&gt; 中点击新建，添加Qt Designer如下图。Qt Designer用于使用GUI工具对ui文件进行编辑。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117221307205" class="gallery-image" data-flex-basis="241px" data-flex-grow="100" height="864" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221307205.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221307205_hu_4215b2b6225cdb98.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221307205.png 871w" width="871"&gt;&lt;/p&gt;&#10;&lt;ol start="4"&gt;&#10;&lt;li&gt;这一步可选。在 &lt;code&gt;Tools -&amp;gt; External Tools&lt;/code&gt; 中点击新建，添加UIC工具。UIC工具用于将ui文件转换为cpp头文件。但是实测在Clion 2024.2中就算不在编译前使用该工具进行转换，也可以正常编译。在Clion中创建新的Qt UI Class后虽然会出现头文件报错，但是在将该类添加到CMakeLists.txt后进行构建，就可以消除该错误。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117221605364" class="gallery-image" data-flex-basis="241px" data-flex-grow="100" height="864" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221605364.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221605364_hu_7576ed0e817f05a6.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117221605364.png 871w" width="871"&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Arguments: &lt;span class="nv"&gt;$FileName&lt;/span&gt;$ -o ui_&lt;span class="nv"&gt;$FileNameWithoutExtension&lt;/span&gt;$.h&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Working directory: &lt;span class="nv"&gt;$ProjectFileDir&lt;/span&gt;$&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ol start="5"&gt;&#10;&lt;li&gt;在使用Clion做Qt项目的时候，一般不需要额外对CMakeLists.txt进行修改，一般来说可以直接运行。只需要在CMakeLists.txt添加自己创建的Qt类即可。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="wsl配置linux配置"&gt;WSL配置（Linux配置）&#10;&lt;/h2&gt;&lt;h3 id="基础环境配置-1"&gt;基础环境配置&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;事前准备：&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install gdb build-essential cmake ninja-build git -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;在下列网址下载Qt 非商用版本在线安装包，选择对应的系统及CPU架构进行下载。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;&lt;a class="link" href="https://www.qt.io/download-qt-installer-oss" target="_blank" rel="noopener"&#10; &gt;https://www.qt.io/download-qt-installer-oss&lt;/a&gt;&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;下载后的文件为 &lt;code&gt;qt-online-installer-linux-xxx-xxx.run&lt;/code&gt; 的格式。在WSL中打开该文件的路径并运行。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod +x qt-online-installer-linux-xxx-xxx.run&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ./qt-online-installer-linux-xxx-xxx.run&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 如果不能运行，检查所缺少的依赖项&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ldd ./qt-online-installer-linux-xxx-xxx.run&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ol start="4"&gt;&#10;&lt;li&gt;与Windows中的基础环境配置的步骤类似，Linux的默认安装路径是/opt/Qt，此处个人没有修改，保持默认设置。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117224421022" class="gallery-image" data-flex-basis="371px" data-flex-grow="154" height="646" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224421022.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224421022_hu_5f06215b882ef30a.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224421022.png 999w" width="999"&gt;&lt;/p&gt;&#10;&lt;ol start="5"&gt;&#10;&lt;li&gt;如果使用的是Linux单系统或者只想要在WSL中做Qt开发，可以参考Windows基础环境配置部分进行选择，对于已经安装过的ninja、cmake可以不用勾选。如果已经在Windows中配置安装过Qt，可以参考下图，并根据各人的需求进行选择，在WSL中不需要安装Qt Designer和Qt Creator。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117224745762" class="gallery-image" data-flex-basis="433px" data-flex-grow="180" height="908" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224745762.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224745762_hu_16d86a25bb957679.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224745762_hu_e6140d7063cfae20.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117224745762.png 1641w" width="1641"&gt;&lt;/p&gt;&#10;&lt;ol start="6"&gt;&#10;&lt;li&gt;点击Next并等待Qt安装完成。安装完成后Qt的安装路径为 &lt;code&gt;/opt/Qt/&lt;/code&gt;。该路径后续将用于配置工具链等。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="vscode-wsl配置"&gt;VScode WSL配置&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;使用VScode在WSL中开发需要在VScode中连接WSL后搜索并在WSL中安装Qt C++ Extension Pack。&lt;/li&gt;&#10;&lt;li&gt;用 &lt;code&gt;ctrl + shift + p&lt;/code&gt; 打开VScode的命令面板，并在其中搜索：Qt Register Qt Installation，并将该路径配置到Qt的安装路径下（/opt/Qt）。&lt;/li&gt;&#10;&lt;li&gt;使用Windows的QC创建一个Qt工程，并用WSL打开该工程的路径，在CMakeLists.txt中添加如下代码&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmake" data-lang="cmake"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的安装路径为 /opt/Qt ，并且创建的工程使用的是5.15.2版本的gcc工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/opt/Qt/5.15.2/gcc_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;如果需要在多个平台使用同一套代码，可以将上面的语句替换为下面的语句：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmake" data-lang="cmake"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的Windows安装路径为 D:/Dev_Program/Qt ，并且创建的工程使用的是5.15.2版本的mingw8.1 64位工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的WSL安装路径为 /opt/Qt ，并且创建的工程使用的是5.15.2版本的gcc工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;WIN32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;D:/Dev_Program/Qt/5.15.2/mingw81_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;untitled&lt;/span&gt; &lt;span class="s"&gt;PROPERTIES&lt;/span&gt; &lt;span class="s"&gt;WIN32_EXECUTABLE&lt;/span&gt; &lt;span class="s"&gt;FALSE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;endif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;WIN32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;LINUX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/opt/Qt/5.15.2/gcc_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;endif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;LINUX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;之后，即可使用VScode在WSL中开发Qt Linux程序。&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;开发的时候如果需要使用ui文件和Qt designer，可以使用VScode插件调用WSL中的Designer进行界面开发，也可以使用Windows中的Qt designer进行配置。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;h3 id="clion配置-1"&gt;Clion配置&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;在 &lt;code&gt;Build,Execution,Deplotment -&amp;gt; Toolchains&lt;/code&gt; 中配置一个WSL工具链，如图所示。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117232937556" class="gallery-image" data-flex-basis="391px" data-flex-grow="163" height="1081" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117232937556.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117232937556_hu_135390e35dd2bf9f.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117232937556_hu_1651905bc9d660b8.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117232937556.png 1765w" width="1765"&gt;&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;按照正常的正常的Windows中Clion新建Qt项目的流程先创建一个项目，然后将CMakeLists.txt中的 &lt;code&gt;CMAKE_PREFIX_PATH&lt;/code&gt; 配置修改为WSL中的Qt安装路径。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmake" data-lang="cmake"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/opt/Qt/5.15.2/gcc_64/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;或者也可以像VSCode中一样配置两个平台的Cmake预设路径。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cmake" data-lang="cmake"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的Windows安装路径为 D:/Dev_Program/Qt ，并且创建的工程使用的是5.15.2版本的mingw8.1 64位工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 假设Qt的WSL安装路径为 /opt/Qt ，并且创建的工程使用的是5.15.2版本的gcc工具链&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;WIN32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;D:/Dev_Program/Qt/5.15.2/mingw81_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;untitled&lt;/span&gt; &lt;span class="s"&gt;PROPERTIES&lt;/span&gt; &lt;span class="s"&gt;WIN32_EXECUTABLE&lt;/span&gt; &lt;span class="s"&gt;FALSE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;endif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;WIN32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;LINUX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;CMAKE_PREFIX_PATH&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/opt/Qt/5.15.2/gcc_64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;endif&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;LINUX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;配置完成后右键单击CMakeLists.txt选择Reload CMake Project。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117233519173" class="gallery-image" data-flex-basis="80px" data-flex-grow="33" height="1215" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117233519173.png" width="409"&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;在 &lt;code&gt;Build,Execution,Deplotment -&amp;gt; CMake&lt;/code&gt; 中添加配置&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117233817295" class="gallery-image" data-flex-basis="391px" data-flex-grow="163" height="1081" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117233817295.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117233817295_hu_4be1f45afa831ce7.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117233817295_hu_9ddbf8ad27017b9c.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117233817295.png 1765w" width="1765"&gt;&lt;/p&gt;&#10;&lt;ol start="5"&gt;&#10;&lt;li&gt;如果需要使用ui文件可以跟Windows中一样操作（使用Windows中安装的Qt Designer进行配置）。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img alt="image-20241117234009113" class="gallery-image" data-flex-basis="441px" data-flex-grow="183" height="2088" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117234009113.png" srcset="https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117234009113_hu_c03188d96a7947ff.png 800w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117234009113_hu_25b46e694b924778.png 1600w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117234009113_hu_e11d0e0fc615835e.png 2400w, https://gaoxz03.github.io/p/qt%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/image-20241117234009113.png 3840w" width="3840"&gt;&lt;/p&gt;&#10;&lt;ol start="6"&gt;&#10;&lt;li&gt;与Windows平台一样，只需要在CMakeLists.txt文件中添加自己的文件即可完成构建和调试。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;</description></item><item><title>Python安装及包管理</title><link>https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/</link><pubDate>Thu, 27 Jun 2024 00:39:27 +0800</pubDate><guid>https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/</guid><description>&lt;blockquote class="alert alert-warning"&gt;&#10; &lt;div class="alert-header"&gt;&#10; &lt;span class="alert-icon"&gt;⚠️&lt;/span&gt;&#10; &lt;span class="alert-title"&gt;警告&lt;/span&gt;&#10; &lt;/div&gt;&#10; &lt;div class="alert-body"&gt;&#10; &lt;p&gt;该文初衷是作为给我两个非CS相关专业的同学作为引导，不一定适合CS相关专业的开发。目前个人更推荐安装一个基础的 Python 版本后使用 &lt;a class="link" href="https://docs.astral.sh/uv/" target="_blank" rel="noopener"&#10; &gt;astral-sh.uv&lt;/a&gt; 作为包管理工具，但 pipenv 仍然也可以作为一个备选方案&lt;/p&gt;&#10; &lt;/div&gt;&#10; &lt;/blockquote&gt;&#10;&lt;h1 id="01_python安装及包管理"&gt;01_Python安装及包管理&#10;&lt;/h1&gt;&lt;p&gt;本文将主要就Windows操作系统和Linux操作系统中python的安装以及包管理相关操作进行说明。&lt;/p&gt;&#10;&lt;h2 id="windows操作系统的python安装"&gt;Windows操作系统的Python安装&#10;&lt;/h2&gt;&lt;h3 id="python安装"&gt;Python安装&#10;&lt;/h3&gt;&lt;p&gt;安装纯Python是个人相对来说更推荐的方法。相较于Anaconda体积更小，使用命令直接操作也比较便捷。而且Anaconda存在商用版本和社区版的区别，虽然对个人开发者和研究人员可以使用社区版，但相较于Python而言存在一定的法律风险。而且Anaconda所占的硬盘空间也较多。&lt;del&gt;总之个人十分不推荐，即便它算是Python最成功的包管理及Python环境管理软件。&lt;/del&gt;&lt;/p&gt;&#10;&lt;p&gt;首先，Python的安装包可以从下面的链接处下载：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://www.python.org/downloads/windows/" target="_blank" rel="noopener"&#10; &gt;Python安装包&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;请务必注意，虽然Windows自带的 Microsoft Store 中也可以搜到Python，但是一定不要从里面安装！！！&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;另外，虽然Windows现在可以使用winget进行类似Linux的软件安装，但是由于其默认的安装路径不可控，因此不推荐使用。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h4 id="确定python版本"&gt;确定Python版本&#10;&lt;/h4&gt;&lt;p&gt;在该页面下可以找到Python到目前为止的所有Windows系统的安装包。可以在该页面安装一些已经被Python官方停止支持的Python版本（部分项目会用到非最新的Python，有些上古项目甚至可能用到Python2）。&lt;/p&gt;&#10;&lt;p&gt;选择Python版本的时候可以选择一个与项目组匹配的Python版本，如果只是自学也可以只安装最新的Python版本（一般尽量选择稳定版本）。&lt;/p&gt;&#10;&lt;p&gt;选择完版本号后，还需要根据电脑的处理器架构选择正确的处理器版本。&lt;/p&gt;&#10;&lt;p&gt;在此以Python 3.12.4为例，一般选择 Windows installer(64-bit) ，点击后即开始下载。&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="411px" data-flex-grow="171" height="931" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_01_Python_Download.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_01_Python_Download_hu_c22141a7a894a9d.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_01_Python_Download.png 1597w" width="1597"&gt;&lt;/p&gt;&#10;&lt;h4 id="安装"&gt;安装&#10;&lt;/h4&gt;&lt;p&gt;由于本人已经安装过Python3.12，故后续以Python3.11做示例，一般来说Python的安装过程不会因版本变化产生较大差别。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;以管理员身份运行安装程序，将两个复选框勾选后点击Customize installation&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="392px" data-flex-grow="163" height="977" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_02_Python_Install_01.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_02_Python_Install_01_hu_8a2ba2d8a8ba010c.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_02_Python_Install_01.png 1598w" width="1598"&gt;&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;除 for all user之外全部勾选，点击Next&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="390px" data-flex-grow="162" height="982" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_03_Python_Install_02.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_03_Python_Install_02_hu_72cbc3062dfe37e0.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_03_Python_Install_02.png 1596w" width="1596"&gt;&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;勾选红框框中的4个复选框，并修改安装路径&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="388px" data-flex-grow="161" height="984" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_04_Python_Install_03.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_04_Python_Install_03_hu_e717fb33279b2c81.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_04_Python_Install_03.png 1592w" width="1592"&gt;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;由于本人使用的Python版本较少且C盘容量够大，一般建议在非系统盘的根目录建立单独的Python文件夹，在Python文件夹下再单独存放不同版本的Python。下面是一个示例&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;D:\Python&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;├─Python311&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;├─Python312&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;├─........&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#9;└─Python38&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;举个例子，本次安装的Python 3.11，在Customize install location中需要填入：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;D:&lt;span class="se"&gt;\P&lt;/span&gt;ython&lt;span class="se"&gt;\P&lt;/span&gt;ython311&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;点击Install即可完成安装。&lt;/p&gt;&#10;&lt;h4 id="安装后的确认"&gt;安装后的确认&#10;&lt;/h4&gt;&lt;p&gt;按Win键搜索Powershell，输入Python，如果能够正确输出如图的版本号则安装成功。&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="400px" data-flex-grow="166" height="954" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_05_Python_Check.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_05_Python_Check_hu_52af3f785bf3ceb0.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_05_Python_Check.png 1591w" width="1591"&gt;&lt;/p&gt;&#10;&lt;p&gt;若安装正确，则关闭当前窗口，或输入下面命令回车，即可退出。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;quit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;如果未正确输出，请查看下一节中关于环境变量的说明进行修改。&lt;/p&gt;&#10;&lt;h4 id="多版本python的安装及管理"&gt;多版本Python的安装及管理&#10;&lt;/h4&gt;&lt;p&gt;如果需要安装多个版本的Python，一般按照上述内容，重复 确定Python版本 &amp;ndash;&amp;gt; 安装即可。&lt;/p&gt;&#10;&lt;p&gt;但是多个Python包安装后，其Python解释器的启动文件都叫python.exe，且这些多个版本的Python都在安装的时候选择了将各版本的python注册到系统的环境变量中。如果继续在Powershell中使用python来调用python可能就不能找到所需的Python版本。其解决方法已经被Python内置（安装时选择的 py launcher），其调用方法如下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;输入该指令后，py launcher将从系统环境变量中查找安装的Python版本。如果没有任何的参数输入，将调用默认的Python版本。&lt;/p&gt;&#10;&lt;p&gt;设置Python的默认版本的方法如下：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;按win键搜索 “环境变量”&lt;/li&gt;&#10;&lt;li&gt;在弹出的窗口点击“环境变量(N)”&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="207px" data-flex-grow="86" height="1192" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_07_enviroment.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_07_enviroment_hu_2d9d8ccfc1acb3cd.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_07_enviroment.png 1032w" width="1032"&gt;&lt;/p&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;如果在安装的时候没有勾选 Install Python for all users，则python的环境变量应保存在上半框中的Path中；如果安装的时候勾选了Install Python for all users，则python的环境变量应保存在下班框中的Path中。（是否勾选需要所有python版本在安装时保持一致）&lt;/li&gt;&#10;&lt;li&gt;双击Path变量，可以看到如下界面。以下图为例，可以看到本机共安装了 Python 3.12 和 Python 3.11 两个版本，且Python3.12的两个相关变量位于Path中更靠前的位置。假设本机只安装了这两个Python版本，Path变量这样的排列这意味着：在这台机器如果使用只使用 py 指令而不加任何其他参数，系统将优先调用3.12版本的Python（直接输入python也将调用3.12版本）。如果需要将3.11设置为默认版本，则需要分别选中python311的两个相关路径，点击右侧的 Move Up，让两个python311变量均在python312之前，并点击ok进行保存（三层都要点ok），保存完后关闭已打开的powershell重新打开，输入py 或者python就会调用3.11版本的Python。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="218px" data-flex-grow="91" height="1315" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_08_path.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_08_path_hu_f3a1850525e62d56.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_08_path.png 1198w" width="1198"&gt;&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;对于安装之后在Powershell中输入python无反应的情况，需要在上图所示界面将python路径加入：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;python.exe所在的路径&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="396px" data-flex-grow="165" height="914" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_09_python_path.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_09_python_path_hu_592a37f4cec24109.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_09_python_path.png 1509w" width="1509"&gt;&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;pip.exe所在路径：python.exe所在路径的基础上加上&amp;quot;PYTHON_PATH\Scripts&amp;quot;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;关于py的使用下面给一个较为简单的说明：&lt;/p&gt;&#10;&lt;p&gt;查看当前已成功安装的python版本：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py --list&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;使用该命令后，输出的log如下：&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="399px" data-flex-grow="166" height="962" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_10_py_list.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_10_py_list_hu_5054b704be5b695e.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_10_py_list.png 1600w" width="1600"&gt;&lt;/p&gt;&#10;&lt;p&gt;可以看到，示例电脑共安装了3.12、3.11、3.8三个python版本。想要调用具体版本的python，使用下面的命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;下面给三个具体的示例：&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="401px" data-flex-grow="167" height="960" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_11_py_version.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_11_py_version_hu_a42f2ec80e885f9d.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_11_py_version_hu_4357ad9f1afcd9ee.png 1600w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_11_py_version.png 1605w" width="1605"&gt;&lt;/p&gt;&#10;&lt;p&gt;关于py指令的更多使用方法，使用如下命名查看：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py --help&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="pip包管理"&gt;pip包管理&#10;&lt;/h3&gt;&lt;p&gt;一般来说，很多python教程都会在安装包的时候建议直接输入下列命令进行包的安装：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#If above command can&amp;#39;t install package, use the command below&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip install PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Recommend command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip install PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;但是如果使用这个方法安装所有包，在不同的项目中很容易因为包过多、每个包之间的依赖关系等问题带来问题。因此强烈不建议使用pip安装所有的包。&lt;/p&gt;&#10;&lt;p&gt;但是，还是需要使用pip安装一些基础支持包和环境。&lt;/p&gt;&#10;&lt;p&gt;建议安装的包如下：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Package Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;wheel&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;安装类似Numpy之类的使用.whl格式的Python包&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pipenv&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Python虚拟环境管理包&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;除这两个包之外，其他所有包都不建议直接使用pip安装，而是使用pipenv创建虚拟环境后在各项目的虚拟环境中单独安装。&lt;/p&gt;&#10;&lt;p&gt;安装上述的这两个包，请在Powershell中下面的两个命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Install wheel&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#If above command can&amp;#39;t install package, use the command below&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip install wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Recommend command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip install wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Install pipenv&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install pipenv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#If above command can&amp;#39;t install package, use the command below&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip install pipenv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Recommend command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip install pipenv&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;安装完成后，在Powershell中输入下一条命令：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#If above command can&amp;#39;t install package, use the command below&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Recommend command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip list&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;输出的log如下所示：&lt;/p&gt;&#10;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="403px" data-flex-grow="168" height="955" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_06_pip_list.png" srcset="https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_06_pip_list_hu_4d788c4c6282b2f4.png 800w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_06_pip_list_hu_87a325a742a12c5a.png 1600w, https://gaoxz03.github.io/p/python%E5%AE%89%E8%A3%85%E5%8F%8A%E5%8C%85%E7%AE%A1%E7%90%86/01_06_pip_list.png 1606w" width="1606"&gt;&lt;/p&gt;&#10;&lt;p&gt;版本不需要与此处所示的版本相同，只需要保证包已安装完成即可。&lt;/p&gt;&#10;&lt;p&gt;后续操作请转到共用操作出查看pipenv的具体使用及pip的相关指令。&lt;/p&gt;&#10;&lt;h2 id="linux安装python"&gt;Linux安装Python&#10;&lt;/h2&gt;&lt;h3 id="python安装-1"&gt;Python安装&#10;&lt;/h3&gt;&lt;p&gt;对于初次使用Linux使用的新手，不建议上来就开始配置多版本的Python环境，本文将只对单版本的Python安装进行解释。&lt;/p&gt;&#10;&lt;p&gt;一般的Linux发行版都会预装python，对于Linux可以先直接在bash中输入：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python3&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;查看是否安装了python，如果没有类似Windows的python环境显示出来，则需要使用下列命令进行安装（需要注意的时，接下来的操作都将使用到管理员权限，没有管理员密码将无法操作）：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Debian \ Ubuntu&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install python3&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Arch Linux&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pacman -S python3&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Red Hat / Cent OS&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum -y install python3&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;Linux 发行版一般不会预装pip，需要手动安装，安装pip的指令如下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Debian \ Ubuntu&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install python3-pip&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Arch Linux&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pacman -S python3-pip&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Red Hat / Cent OS&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum -y install python3-pip&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="linux环境下的python包管理"&gt;Linux环境下的Python包管理&#10;&lt;/h3&gt;&lt;p&gt;与Windows使用pip直接安装包不同，Linux中Python包采用的不同的发行策略，一般都需要使用系统的包管理软件进行安装。因此，安装pipenv和wheel需要使用对应的包管理软件指令进行安装。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Debian \ Ubuntu&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install pipenv python3-wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Arch Linux&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo pacman -S pipenv python3-wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Red Hat / Cent OS&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum -y install pipenv python3-wheel&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;安装完后，就可以使用pipenv进行环境配置了。&lt;/p&gt;&#10;&lt;h2 id="pipenv--pip"&gt;pipenv &amp;amp; pip&#10;&lt;/h2&gt;&lt;h3 id="pipenv"&gt;pipenv&#10;&lt;/h3&gt;&lt;p&gt;pipenv是一个非常好用的python虚拟环境配置工具。这个工具可以实现为不同的工程设置不同的python版本、不同的python包依赖环境。同时对于Linux来说，还可以使用pip在虚拟环境中安装所需的python包，使得在Linux中需要使用的命令与Windows环境基本一致。&lt;/p&gt;&#10;&lt;p&gt;pipenv的官网如下：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://pipenv.pypa.io/en/latest/" target="_blank" rel="noopener"&#10; &gt;pipenv&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://pipenv.pypa.io/zh-cn/latest/" target="_blank" rel="noopener"&#10; &gt;pipenv 中文文档&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;关于pipenv的所有文档都在该网站。&lt;/p&gt;&#10;&lt;p&gt;或者也可以在Powershell或者bash中输入下面的命令以得到一些基础参数的提示：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv --help&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;该命令的输出log如下：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;span class="lnt"&gt;32&#10;&lt;/span&gt;&lt;span class="lnt"&gt;33&#10;&lt;/span&gt;&lt;span class="lnt"&gt;34&#10;&lt;/span&gt;&lt;span class="lnt"&gt;35&#10;&lt;/span&gt;&lt;span class="lnt"&gt;36&#10;&lt;/span&gt;&lt;span class="lnt"&gt;37&#10;&lt;/span&gt;&lt;span class="lnt"&gt;38&#10;&lt;/span&gt;&lt;span class="lnt"&gt;39&#10;&lt;/span&gt;&lt;span class="lnt"&gt;40&#10;&lt;/span&gt;&lt;span class="lnt"&gt;41&#10;&lt;/span&gt;&lt;span class="lnt"&gt;42&#10;&lt;/span&gt;&lt;span class="lnt"&gt;43&#10;&lt;/span&gt;&lt;span class="lnt"&gt;44&#10;&lt;/span&gt;&lt;span class="lnt"&gt;45&#10;&lt;/span&gt;&lt;span class="lnt"&gt;46&#10;&lt;/span&gt;&lt;span class="lnt"&gt;47&#10;&lt;/span&gt;&lt;span class="lnt"&gt;48&#10;&lt;/span&gt;&lt;span class="lnt"&gt;49&#10;&lt;/span&gt;&lt;span class="lnt"&gt;50&#10;&lt;/span&gt;&lt;span class="lnt"&gt;51&#10;&lt;/span&gt;&lt;span class="lnt"&gt;52&#10;&lt;/span&gt;&lt;span class="lnt"&gt;53&#10;&lt;/span&gt;&lt;span class="lnt"&gt;54&#10;&lt;/span&gt;&lt;span class="lnt"&gt;55&#10;&lt;/span&gt;&lt;span class="lnt"&gt;56&#10;&lt;/span&gt;&lt;span class="lnt"&gt;57&#10;&lt;/span&gt;&lt;span class="lnt"&gt;58&#10;&lt;/span&gt;&lt;span class="lnt"&gt;59&#10;&lt;/span&gt;&lt;span class="lnt"&gt;60&#10;&lt;/span&gt;&lt;span class="lnt"&gt;61&#10;&lt;/span&gt;&lt;span class="lnt"&gt;62&#10;&lt;/span&gt;&lt;span class="lnt"&gt;63&#10;&lt;/span&gt;&lt;span class="lnt"&gt;64&#10;&lt;/span&gt;&lt;span class="lnt"&gt;65&#10;&lt;/span&gt;&lt;span class="lnt"&gt;66&#10;&lt;/span&gt;&lt;span class="lnt"&gt;67&#10;&lt;/span&gt;&lt;span class="lnt"&gt;68&#10;&lt;/span&gt;&lt;span class="lnt"&gt;69&#10;&lt;/span&gt;&lt;span class="lnt"&gt;70&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Usage: pipenv &lt;span class="o"&gt;[&lt;/span&gt;OPTIONS&lt;span class="o"&gt;]&lt;/span&gt; COMMAND &lt;span class="o"&gt;[&lt;/span&gt;ARGS&lt;span class="o"&gt;]&lt;/span&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Options:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --where Output project home information.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --venv Output virtualenv information.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --py Output Python interpreter information.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --envs Output Environment Variable options.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --rm Remove the virtualenv.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --bare Minimal output.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --man Display manpage.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --support Output diagnostic information &lt;span class="k"&gt;for&lt;/span&gt; use in&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; GitHub issues.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --site-packages / --no-site-packages&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Enable site-packages &lt;span class="k"&gt;for&lt;/span&gt; the virtualenv.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;[&lt;/span&gt;env var: PIPENV_SITE_PACKAGES&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --python TEXT Specify which version of Python virtualenv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; should use.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --clear Clears caches &lt;span class="o"&gt;(&lt;/span&gt;pipenv, pip&lt;span class="o"&gt;)&lt;/span&gt;. &lt;span class="o"&gt;[&lt;/span&gt;env var:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PIPENV_CLEAR&lt;span class="o"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -q, --quiet Quiet mode.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v, --verbose Verbose mode.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --pypi-mirror TEXT Specify a PyPI mirror.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --version Show the version and exit.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -h, --help Show this message and exit.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Usage Examples:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Create a new project using Python 3.7, specifically:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv --python 3.7&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Remove project virtualenv &lt;span class="o"&gt;(&lt;/span&gt;inferred from current directory&lt;span class="o"&gt;)&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv --rm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Install all dependencies &lt;span class="k"&gt;for&lt;/span&gt; a project &lt;span class="o"&gt;(&lt;/span&gt;including dev&lt;span class="o"&gt;)&lt;/span&gt;:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv install --dev&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Create a lockfile containing pre-releases:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv lock --pre&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Show a graph of your installed dependencies:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv graph&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Check your installed dependencies &lt;span class="k"&gt;for&lt;/span&gt; security vulnerabilities:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv check&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Install a &lt;span class="nb"&gt;local&lt;/span&gt; setup.py into your virtual environment/Pipfile:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv install -e .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Use a lower-level pip command:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; $ pipenv run pip freeze&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Commands:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; check Checks &lt;span class="k"&gt;for&lt;/span&gt; PyUp Safety security vulnerabilities and against&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PEP &lt;span class="m"&gt;508&lt;/span&gt; markers provided in Pipfile.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; clean Uninstalls all packages not specified in Pipfile.lock.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; graph Displays currently-installed dependency graph information.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; install Installs provided packages and adds them to Pipfile, or &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; no&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; packages are given&lt;span class="o"&gt;)&lt;/span&gt;, installs all packages from Pipfile.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; lock Generates Pipfile.lock.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; open View a given module in your editor.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; requirements Generate a requirements.txt from Pipfile.lock.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; run Spawns a &lt;span class="nb"&gt;command&lt;/span&gt; installed into the virtualenv.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; scripts Lists scripts in current environment config.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; shell Spawns a shell within the virtualenv.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sync Installs all packages specified in Pipfile.lock.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; uninstall Uninstalls a provided package and removes it from Pipfile.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; update Runs lock, &lt;span class="k"&gt;then&lt;/span&gt; sync.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; upgrade Resolves provided packages and adds them to Pipfile, or &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; no&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; packages are given&lt;span class="o"&gt;)&lt;/span&gt;, merges results to Pipfile.lock&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; verify Verify the &lt;span class="nb"&gt;hash&lt;/span&gt; in Pipfile.lock is up-to-date.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;一般来说，比较常用的命令有：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Use Default python version to create a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv install&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Use python VERSION to create a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv --python VERSION&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Open a shell in virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv shell&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Already used &amp;#34;pipenv shell&amp;#34; command, want to quit this virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Remove virtual enviroment in current path&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv -rm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Show all package in this virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pipenv graph&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;其中需要特别提出的是，当使用了&amp;quot;pipenv shell&amp;quot;命令后，只要还没有使用&amp;quot;exit&amp;quot;，则在该环境中可以使用pip安装python包（不论是Windows还是Linux）。&lt;/p&gt;&#10;&lt;p&gt;此处列出的仅仅只是pipenv极基础的用法，更多用法建议参考pipenv手册（Linux中使用 &amp;ldquo;man pipenv&amp;quot;或查看本节中列出的两个链接）。&lt;/p&gt;&#10;&lt;h3 id="pip"&gt;pip&#10;&lt;/h3&gt;&lt;p&gt;上文实际上已经提及了pip的安装命令，本节将主要就pip安装包、卸载包、更新包、导出当前依赖包列表、pip自更新进行解释。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;span class="lnt"&gt;25&#10;&lt;/span&gt;&lt;span class="lnt"&gt;26&#10;&lt;/span&gt;&lt;span class="lnt"&gt;27&#10;&lt;/span&gt;&lt;span class="lnt"&gt;28&#10;&lt;/span&gt;&lt;span class="lnt"&gt;29&#10;&lt;/span&gt;&lt;span class="lnt"&gt;30&#10;&lt;/span&gt;&lt;span class="lnt"&gt;31&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Install a package&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Only recommend in a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Uninstall a package&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Only recommend in a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip uninstall PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#List all package in current enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#For a specific version python &lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Only recommend in a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m pip install –-upgrade PACKAGENAME&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Update pip&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;py -V:VERSION -m pip --uppgrade pip&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Freeze current pip package enviroment in requirements.txt at CURRENT PATH&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Only recommend in a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Use &amp;#34;pipenv shell&amp;#34; before using this command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip freeze &amp;gt; requirements.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Unfreeze a pip package enviroment from requirements.txt at CURRENT PATH&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Only recommend in a virtual enviroment&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#Use &amp;#34;pipenv shell&amp;#34; before using this command&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -r requirements.txt&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;#For help&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip --help&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;上面已经包含了一些常用的pip命令。这些命令不强求需要记住，只需要有一个大概的了解。在使用PyCharm进行开发的时候这些操作都可以使用图形化界面进行配置。但是还是需要有个印象，因为如果不使用PyCharm等现代IDE做项目开发的时候，或者极小可能的情况下IDE或网络抽风的情况下，只能使用命令行做应急的时候还是需要这些命令的。&lt;/p&gt;&#10;</description></item></channel></rss>