首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将git克隆到虚拟Python环境的推荐工作流

将git克隆到虚拟Python环境的推荐工作流
EN

Stack Overflow用户
提问于 2019-03-10 12:22:51
回答 3查看 12.5K关注 0票数 6

如果我想将git拉到虚拟Python环境中,那么推荐的工作流是什么?我认为最简单的办法是:

  1. 创建一个空目录
  2. cd到它和git clone <repo>中,因为这只在空目录中工作。
  3. 在同一目录中的子目录中创建虚拟环境
  4. 启动VE并从requirements.txt安装<repo>
  5. 将subdir (以及仅供我的眼睛使用的其他内容)添加到.gitignore中
  6. 按计划进行的项目工作
  7. 也许要求将有价值的/可共享的结果推送到原始回购。

还是有更好的方法?

免责声明:我是一个相当n00b的git,请容忍我。我很清楚已经有多个类似的答案,但是我找不到令人信服的TL,也许我错过了。

EN

回答 3

Stack Overflow用户

发布于 2020-01-07 11:38:29

如果您想要将库克隆到要使用的项目中,那么下面的步骤将帮助您:

  1. 激活项目的虚拟环境 source .venv/bin/activate.fish
  2. 卸载要用git克隆替换的包: pip uninstall <package>
  3. 通过git重新安装软件包: pip install -e git+ssh://git@github.com/<org>/<package>.git#egg=<package>
  4. 更改为包目录以处理存储库 cd .venv/src/<package>
票数 3
EN

Stack Overflow用户

发布于 2019-03-12 15:39:20

我喜欢这样做:

代码语言:javascript
复制
git clone <repo> <repodir>
cd <repodir>
virtualenv .venv
. .venv/bin/activate
pip install -e .

就这样。现在,我所做的任何编辑都将在虚拟环境中“活”。我有一个全局.gitignore文件(git config --global core.excludesfile ~/.gitignore),其中包括.venv,因此我不需要更新各个存储库中的.gitignore

请注意,您不需要在空目录中运行git clone。因为它创建了一个新目录,所以它不关心当前目录是否为空。

更新

听着,我们在一个非空目录中:

代码语言:javascript
复制
bash-4.4$ ls
file1  file2  file3

我们可以在这里运行git clone

代码语言:javascript
复制
bash-4.4$ git clone https://github.com/git/git
Cloning into 'git'...
remote: Enumerating objects: 264438, done.
remote: Total 264438 (delta 0), reused 0 (delta 0), pack-reused 264438
Receiving objects: 100% (264438/264438), 112.69 MiB | 9.84 MiB/s, done.
Resolving deltas: 100% (196057/196057), done.

它运行时没有问题,并创建了一个新目录:

代码语言:javascript
复制
bash-4.4$ ls
file1  file2  file3  git
票数 2
EN

Stack Overflow用户

发布于 2022-07-22 15:18:32

据我所知,不建议将虚拟环境初始化并存储在项目的git目录中。在这种情况下,您的env空间暴露在某种粗俗中。其中:

  1. 如果删除项目目录,则会丢失env。因此,在其他项目中正确地使用它是没有可伸缩性的。
  2. 您需要始终记住.gitignore文件中的内容,以避免不必要的env分发。
  3. 我不知道用标准python3-venv列出所有env的简单方法。所以,很可能,如果你那样操作的话,你很难找到你有哪些可用的env。

相反,推荐的方法是使用虚拟包装工具,即将所有env存储在一个特定的目录中,最常见的是在~/.virtualenvs中。此工具有助于在env之间创建、删除和切换。请参阅本post中的更多内容。

综上所述,推荐的工作流:

  • 安装virtualenvwrapper
  • mkvirtualenv $env_name创建新的env
  • git clone <rep>初始化您的代表
  • 在您的pip install -r requirements.txt环境下运行$env_name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55087632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档