Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里克隆Python模块git存储库?_Python_Git_Github_Module_Repository - Fatal编程技术网

在哪里克隆Python模块git存储库?

在哪里克隆Python模块git存储库?,python,git,github,module,repository,Python,Git,Github,Module,Repository,我对GitHub Python模块repo感兴趣,但我不完全确定在哪里克隆它。这是一个简单的模块,只是一个\uuuu init\uuuu.py和一些.py文件。无需在模块文件夹外安装或更改其他文件 我希望能够直接在我的site packages文件夹中克隆存储库。当我想按原样使用库时,我会切换到主分支。如果我想开发一个新功能,可以从devel分支。如果我想尝试其他人实现的新功能,我可以切换到该特定分支。我甚至可以将它保存在开发分支中,以获得最新的功能,尽管可能不稳定。所有这些都不必更改impor

我对GitHub Python模块repo感兴趣,但我不完全确定在哪里克隆它。这是一个简单的模块,只是一个
\uuuu init\uuuu.py
和一些
.py
文件。无需在模块文件夹外安装或更改其他文件

我希望能够直接在我的site packages文件夹中克隆存储库。当我想按原样使用库时,我会切换到主分支。如果我想开发一个新功能,可以从devel分支。如果我想尝试其他人实现的新功能,我可以切换到该特定分支。我甚至可以将它保存在开发分支中,以获得最新的功能,尽管可能不稳定。所有这些都不必更改
import
语句,以指向我的任何脚本中的不同位置。这个选项,即使它似乎做了我想要它做的所有事情,出于某种原因似乎有点错误。另外,我不确定调用
python-mpip-list时这会对pip造成什么影响——过时的
。我感觉它不知道当前版本是什么

另一种选择是将其克隆到其他文件夹,并在site packages文件夹中仅保留已安装的pip变体。这样,我就可以在站点包中正确安装库,并且可以通过在repo文件夹中创建脚本来尝试新功能。这看起来不像上面的选项那么灵活,但它不会弄乱SitePackages文件夹


哪种方法是最好的?当你们都想使用存储库并将其与最新功能一起使用时,如何克隆它们?

我认为这更像是一个关于打包和开源的问题,而不是Python本身,但我会尽力帮助你们

  • 如果您想在Pip上托管您的包,您应该去,在那里您将看到如何上传并适当标记您的包以供使用

  • 如果您想向某个开源库添加一些功能,您可以尝试将其添加到该库中,以便每个人都可以使用它。PR规则对于每个项目都是特定的,您应该询问维护人员

  • 如果您的修改没有合并到master中,但您仍然希望在不更改
    import
    语句的情况下使用它,那么您可以分叉该repo,并在例如Github上发布您自己的修改

    在这种情况下,您可以安装如下修改:

    pip install git+https://github.com/username/amazing-project.git
    
    这样,您的库将来自您自己的回购协议


如果您选择第三个选项,我强烈建议您使用
virtualenv
,在这里您可以使用不同的包、依赖项等创建不同的虚拟环境,而不会影响Python的安装。有一本不错的指南。

谢谢你的回复,但这不是我想知道的。我知道如何为项目做出贡献,但我不知道应该在哪里克隆存储库:在站点包中还是其他地方。在这种情况下,我认为测试包开发的最佳方法是使用虚拟环境,通过这种方式,您可以在版本之间来回切换。这是一个很好的观点,但是我可以通过切换到发布分支来使用git实现这一点。但是,是的,如果没有发布分支,或者它与实际版本不同,那么虚拟环境将是一个很好的解决方案?例如
pandas
。我想
git克隆
pandas
repo到
site-packages
目录中,但是实际的python包随后会在
site-packages/pandas/pandas
中,这意味着
import
语句不能正常工作。