dan*_*y74 17 python pip node.js npm
在 NodeJS 的 npm 中,您可以创建一个 package.json 文件来跟踪您的项目依赖项。当您想安装它们时,您只需运行npm install它,它会查看您的包文件并使用该单个命令安装它们。
在分发我的代码时,python 是否具有等效的概念,或者我是否需要在我的 README 中告诉人们安装每个依赖项,如下所示:
pip install package1
pip install package2
Run Code Online (Sandbox Code Playgroud)
在他们可以使用我的代码之前?
Moh*_*lal 33
最好的方法可能是Pipenv。我个人使用它。
\n不过,在本指南中,我将解释如何仅使用 Python 和 pip 来完成此操作。并且没有pipenv。这是第一部分。它将使我们更好地理解 Pipenv 的工作原理。第二部分是处理pipenv。检查 Pipenv 部分(越接近 npm)。
\n用Python把这一切都搞定。这里是主要要素:
\n请注意,为此要使用venv包。这是官方的事情。并从 3.3+ 开始附带 python 3 安装。
\n要了解它是什么以及为什么,请查看\n https://docs.python.org/3/tutorial/venv.html
\n简而言之,虚拟环境将帮助我们管理一个隔离版本的Python解释器。安装的软件包也是如此。这样。不同的项目不必依赖于相同的软件包安装而产生冲突。阅读上面的链接解释并很好地展示它。
\n\n\n...这意味着一个 Python 安装可能无法满足每个应用程序的要求。如果应用程序 A 需要特定模块的 1.0 版,但应用程序 B 需要 2.0 版,则要求会发生冲突,安装版本 1.0 或 2.0 都会导致应用程序无法运行。
\n
您可能想查看Flask 框架文档上的解释。
\nhttps://flask.palletsprojects.com/en/2.1.x/installation/#virtual-environments
\n为什么我们关心这个并应该使用它。隔离项目。(每个都有它的环境)。然后冻结命令将在每个项目基础上工作。检查最后一节。
\n这里有一个关于如何设置和工作的很好的指南:
\nhttps://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
\n首先检查安装部分。
\n然后
\n要创建虚拟环境,请转到项目目录并运行:
\n在 macOS 和 Linux 上:
\n> python3 -m venv env\nRun Code Online (Sandbox Code Playgroud)\n在 Windows 上:
\n> py -m venv env\nRun Code Online (Sandbox Code Playgroud)\n\n\n注意您应该使用或类似的方法从版本控制系统中排除虚拟环境目录
\n.gitignore。
要开始使用控制台中的环境,您必须激活它
\n\n在 macOS 和 Linux 上:
\n> source env/bin/activate\nRun Code Online (Sandbox Code Playgroud)\n在 Windows 上:
\n> .\\env\\Scripts\\activate\nRun Code Online (Sandbox Code Playgroud)\n请参阅有关如何检查您是否处于环境中的部分(使用哪个(linux、unix)或哪里(windows))。
\n要停用您使用
\n> deactivate\nRun Code Online (Sandbox Code Playgroud)\nhttps://pip.pypa.io/en/latest/user_guide/#requirements-files
\n\n\n\xe2\x80\x9cRequirements files\xe2\x80\x9d 是包含要使用 pip install 安装的依赖项列表的文件,如下所示
\n
(如何安装需求文件)
\n> py -m venv env\nRun Code Online (Sandbox Code Playgroud)\n\n\n需求文件用于保存 pip freeze 的结果,以实现可重复安装。在这种情况下,您的需求文件包含运行pip freeze时安装的所有内容的固定版本。
\n
> source env/bin/activate\nRun Code Online (Sandbox Code Playgroud)\n一些语法:
\npkg1\npkg2==2.1.0\npkg3>=1.0,<=2.0\nRun Code Online (Sandbox Code Playgroud)\n== 精确。
\nrequests==2.18.4\ngoogle-auth==1.1.0\nRun Code Online (Sandbox Code Playgroud)\n强制 pip 接受早期版本
\nProjectA\nProjectB<1.3\nRun Code Online (Sandbox Code Playgroud)\n将 git 与标签一起使用(自己修复错误而不是等待)
\ngit+https://myvcs.com/some_dependency@sometag#egg=SomeDependency\nRun Code Online (Sandbox Code Playgroud)\n再次检查链接https://pip.pypa.io/en/latest/user_guide/#requirements-files \n我从中挑选了所有示例。你应该看看解释。还有细节。
\n有关格式详细信息,请检查: https://pip.pypa.io/en/latest/cli/pip_install/#requirements-file-format
\nPip 可以使用 freeze 命令导出所有已安装软件包及其版本的列表。在命令运行时。列出当前环境中所有已安装的软件包的列表。
\npip freeze\nRun Code Online (Sandbox Code Playgroud)\n这将输出类似的内容:
\ncachetools==2.0.1\ncertifi==2017.7.27.1\nchardet==3.0.4\ngoogle-auth==1.1.1\nidna==2.6\npyasn1==0.3.6\npyasn1-modules==0.1.4\nrequests==2.18.4\nrsa==3.4.2\nsix==1.11.0\nurllib3==1.22\nRun Code Online (Sandbox Code Playgroud)\n我们可以将其写入需求文件中
\npip freeze > requirements.txt\nRun Code Online (Sandbox Code Playgroud)\nhttps://pip.pypa.io/en/latest/cli/pip_freeze/#pip-freeze
\n通过为每个项目使用 venv(虚拟环境)。这些项目是孤立的。然后 freeze 命令将仅列出该特定环境上安装的软件包。这是由项目基地组成的。冻结命令在运行时列出软件包。与确切的版本匹配。我们从中生成一个需求文件(requirements.txt)。我们可以将其添加到项目存储库中。并安装了依赖项。
\n整个事情可以从这个意义上完成:
\nLinux/Unix
\npython3 -m venv env\nsource env/bin/activate\npip3 install -r requirements.txt\nRun Code Online (Sandbox Code Playgroud)\n视窗
\npy -m venv env\n.\\env\\Scripts\\activate\npip3 install -r requirements.txt\nRun Code Online (Sandbox Code Playgroud)\n克隆存储库后首次设置。
\n创建新环境。
\n然后激活它。
\n然后将需要的包安装到其中。
\n否则,这里有一个关于使用官方文档中的 requiremnets 文件和虚拟环境安装包的完整指南:https ://packaging.python.org/guides/installing-using-pip-and-virtual-environments/
\n第二个指南也显示得很好:https ://docs.python.org/3/tutorial/venv.html
\n链接列表(已列出):
\nhttps://pipenv.pypa.io/en/latest/
\n管彭夫是一个尝试像 Python 的 npm 一样的工具。是一套超级pip。
\npipenv为我们创建虚拟环境。并管理依赖关系。
一个很好的功能是能够像文件一样编写packages.json。其中也包含脚本部分。
\n\n\nhttps://pipenv.pypa.io/en/latest/installation/
\nhttps://pipenv.pypa.io/en/latest/installation/#virtualenv-mapping-caveat
\n对我来说,在项目中创建环境(就像node_modules一样)应该是默认的。确保激活它。通过设置环境变量。
\npipenv可以看起来更方便。
主要管理运行脚本是不容错过的。以及一款可以简化这一切的单一工具。
\n请注意,npm 的等效项package.json是PipFile文件。
一个例子:
\n> .\\env\\Scripts\\activate\nRun Code Online (Sandbox Code Playgroud)\n有像package.lock一样的Pipfile.lock
\n运行npm install 等效项。你跑pipenv install。
安装新包
\n> deactivate\nRun Code Online (Sandbox Code Playgroud)\n\n\n如果\xe2\x80\x99 不存在,这将创建一个 Pipfile。如果确实存在,它将自动使用您提供的新包进行编辑。
\n
就像 npm 一样。
\npip install -r requirements.txt\nRun Code Online (Sandbox Code Playgroud)\n如果PIPENV_VENV_IN_PROJECT=1设置了 env 变量。pipenv在项目内设置虚拟环境。它是在名为.venv的目录中创建的(相当于 node_modules)。
还在目录中没有 PipFile 的情况下运行pipelinenv install 。既不是虚拟环境。.venv将在目录(相当于node_modules)上创建虚拟环境。并生成PipFile和Pipfile.lock。
安装烧瓶示例:
\npython -m pip freeze > requirements.txt\npython -m pip install -r requirements.txt\nRun Code Online (Sandbox Code Playgroud)\n作为开发依赖项安装
\npkg1\npkg2==2.1.0\npkg3>=1.0,<=2.0\nRun Code Online (Sandbox Code Playgroud)\n或者
\nrequests==2.18.4\ngoogle-auth==1.1.0\nRun Code Online (Sandbox Code Playgroud)\n就像 npm 一样。
\npipenv所有命令(pipenv -h)
ProjectA\nProjectB<1.3\nRun Code Online (Sandbox Code Playgroud)\n命令帮助
\ngit+https://myvcs.com/some_dependency@sometag#egg=SomeDependency\nRun Code Online (Sandbox Code Playgroud)\n从requirements.txt导入
\nhttps://pipenv.pypa.io/en/latest/pipfile/#importing-from-requirements-txt
\n环境管理与pipenv
pipenv跑步
要在项目虚拟环境中运行任何内容,您需要使用pipenv run
就像一样pipenv run python server.py。
自定义scripts快捷键
scripts在npm。或者tasks。
https://pipenv.pypa.io/en/latest/advanced/#custom-script-shortcuts
\npip freeze\nRun Code Online (Sandbox Code Playgroud)\n并运行
\ncachetools==2.0.1\ncertifi==2017.7.27.1\nchardet==3.0.4\ngoogle-auth==1.1.1\nidna==2.6\npyasn1==0.3.6\npyasn1-modules==0.1.4\nrequests==2.18.4\nrsa==3.4.2\nsix==1.11.0\nurllib3==1.22\nRun Code Online (Sandbox Code Playgroud)\n就像 npm 一样。
\n\n\n如果您\xe2\x80\x99d 喜欢锁定文件的requirements.txt 输出,请运行$ pipelinenv lock -r。然而,这将包括所有哈希值(这很棒)。要获取不带哈希值的requirements.txt,请使用 $ pipelinenv run pip freeze。
\n
使用 Pipenv 进行部署
\n\n值得一提的是,pipenv cli渲染也做得很好:
请务必阅读基本指南。主文档链接确实包含所有链接。
\n可见其有多么富有pipenv。
has*_*ram 18
一旦添加了所有必要的包
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
创建需求文件。
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
再次安装这些软件包,比如在生产期间。
Gee*_*bhu 12
安装完所有软件包后,运行
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
这会将包详细信息保存在文件中requirements.txt。
要安装,请运行
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
安装 指定的软件包requirements.txt。
是的,它被称为需求文件:
https://pip.pypa.io/en/stable/cli/pip_install/#requirement-specifiers
您可以指定包名称和版本号。
您还可以指定 git url 或本地路径。
通常情况下,您会指定包后跟版本号,例如
sqlalchemy=1.0.1
Run Code Online (Sandbox Code Playgroud)
您可以requirements.txt通过命令安装文件中指定的所有包
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5979 次 |
| 最近记录: |