Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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 如何将libgit2/pygit2安装到virtualenv中?(Ubuntu)_Python_Ubuntu_Virtualenv_Libgit2_Pygit2 - Fatal编程技术网

Python 如何将libgit2/pygit2安装到virtualenv中?(Ubuntu)

Python 如何将libgit2/pygit2安装到virtualenv中?(Ubuntu),python,ubuntu,virtualenv,libgit2,pygit2,Python,Ubuntu,Virtualenv,Libgit2,Pygit2,我试过德威治和GitPython——这两种似乎都不成熟。现在我正在尝试安装libgit2/pygit2。我已经成功地将它们安装到主机包环境中,但现在我需要将它们安装到我正在构建的应用程序的virtualenv中 Python 2.7.3 (default, Sep 26 2013, 20:03:06) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >&

我试过德威治和GitPython——这两种似乎都不成熟。现在我正在尝试安装libgit2/pygit2。我已经成功地将它们安装到主机包环境中,但现在我需要将它们安装到我正在构建的应用程序的virtualenv中

Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygit2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pygit2/__init__.py", line 32, in <module>
    import _pygit2
ImportError: libgit2.so.0: cannot open shared object file: No such file or directory
>>>
Python 2.7.3(默认,2013年9月26日,20:03:06)
[GCC 4.6.3]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入pygit2
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist packages/pygit2/_init__.py”,第32行,在
导入_pygit2
ImportError:libgit2.so.0:无法打开共享对象文件:没有此类文件或目录
>>>

如您所见,当前的问题似乎是无法从virtualenv中找到全局安装的libgit2.so.0。公平地说,这就是virtualenv到底是怎么回事,沙箱。那么,如何为virtualenv链接/符号链接/构建libgit2.So的版本/副本呢?

我在一个要点中找到了以下脚本,当在登录virtualenv时运行该脚本时,将在venv中同时安装当前的libgit2/pygit2


需要注意的是,将两个库的版本号更新为相同的最新版本(撰写本文时为0.20.0)。

您实际上不需要这些版本号,不签出特定的分支,它们只是克隆并执行。我&它工作正常。(顺便说一句,谢谢!)