python - 避免为每个项目安装 python/packages 版本。如何在不同项目之间共享包含包和 python 版本的路径?
问题描述
我正在使用 Windows 操作系统并隔离我的项目并跟踪 Python 版本和库版本,我有时使用 Anaconda,有时使用 Vagrant Machine(通常使用 Ubuntu 18.04),具体取决于项目。
当我使用Vagrant模拟 Ubuntu 18.04 时,我总是必须为该项目的虚拟环境文件夹中的每个新项目一遍又一遍地安装相同的包,我想知道是否有更好的解决方案不这样做并且仍然保持跟踪的版本。你能给我一些建议来帮助我吗?(如果可以的话,如果您也可以分享一个教程链接来做到这一点,那就太棒了)
有没有办法让我跟踪 *.txt 文件(如requirements.txt
文件)上的 python 和库版本,并通过该工具使其在单个路径中搜索该包版本,共享包含 python 版本和库版本的单个文件夹在我拥有的每个项目中,而不必在该特定项目文件夹中重新安装包?
如果有,我是否仍然可以将包含这些包和我正在使用的 python 版本的虚拟环境推送到 git 而不将其与我安装的其他版本混合?我不想将虚拟环境文件存储在我的计算机中,但是当我将它推送到 GitHub 时,我仍然希望它在我的项目中可用。
非常感谢
解决方案
有一种方法可以创建已安装 Python 包的列表。您可以使用
$ pip list --format=freeze > installation_list.txt
这将导出带有版本的软件包列表并将它们保存到文本文件中。除了冻结,您还可以使用JSON或legacy作为有效的列表格式。
您可以使用$ pip install -r installation_list.txt
从给定的依赖项进行安装。
用于将这些文件推送到 git 而不与其他版本混合。我建议为这些版本创建一个单独的分支并推送。它将更容易维护不同的版本而没有任何冲突。每当您想要时,您都可以通过以下方式更改该分支
git checkout -b <branch name>
如果需要,为该遥控器创建新的来源。
推荐阅读
- git - 尝试在 Android Studio 中克隆 git 存储库时出现 GIT_ASKPASS_TOKEN 错误
- python - “sharepoint”和“sharepy”包无法导入
- laravel - Laravel - 测试 api 时方法 Illuminate\Auth\RequestGuard::attempt 不存在
- r - 防止在不使用选项的情况下创建 data.table 自动索引的简单方法(datatable.auto.index = FALSE)
- xamarin - 禁用特定页面 Xamarin 上的手势
- java - 无网络时如何更改 ADMOB 广告的背景颜色
- python - 尝试使用 mechanize 打开网页时出错
- ios - 检查一个地理位置是否属于两个地理位置
- r - 使用 Rselenium 抓取多个 url
- ruby-on-rails - 如何在 Rails 中进行 Shopify GraphQL 查询而不会出现内存问题