pip install不能从git工作但在本地工作

时间:2018-02-22 21:43:23

标签: python git python-3.x pip

我在项目的根目录中有一个模块,如in docs (simple example)所述。它适用于两者,从本地安装并直接从git安装(我的意思是,pip install。和pip install git + https://url/to/repository)。

现在我在项目的根目录中添加了两个新模块,所以我的设置现在看起来像这样:

from distutils.core import setup
setup(name='foo',
  version='1.0',
  py_modules=['foo', 'foo1', 'foo2'],
  url='https://url/to/repository'
  )

考虑到该名称和其中一个模块都是foo。 现在,我可以使用pip install .从来源安装它,然后将其用作import fooimport foo1。如果我尝试pip freeze,则会显示foo已安装。

但是,当我运行pip install git+https://url/to/repository时,一切都正常运行。它结束了。如果我运行pip freeze,则会显示foo,就好像它已正确安装一样,但当我执行import fooimport foo1时,它会失败。

知道什么是错的?我使用python3,所有这些命令都在virtualenv中运行。我使用bitbucket作为git存储库。

更新我

好吧,我在一个公共仓库中创建了一个最小的例子,它可以从pip install中完成。并点击安装git + https://url/to/repo

据我所知,真正的回购和foo之间的主要区别在于,foo没有自述文件, init .py,要求并且没有任何依赖性(真正的回购有一些外部依赖项,在setup.py中表示为install_requires,而某些模块依赖于其他模块(就好像foo1和foo2依赖于foo))。 foo项目的结构是这样的:

root
+----foo.py
+----foo1.py
+----foo2.py
+----setup.py      

setup.py如下:

from distutils.core import setup
setup(name='foo',
version='2.0',
py_modules=['foo', 'foo1', 'foo2'],
url='https://bitbucket.org/idatha/test_pip/overview'
)
除了名字之外,

和foo,foo1和foo2都是一样的:

class foo1():
    def __init__(self, number):
        self.number = number

    def add(self, b):
        return self.number + b

更新II

我再次安装了上次提交的上一个工作版本。它工作得很好。在这种情况下,源代码是在.env/lib/python3.5/site-packages/foo.py下复制的,但是,当我安装新版本(使用foo1.pyfoo2.py)时,它不会将任何内容复制到此目录,如果我安装它,则不会来自本地或直接来自git

0 个答案:

没有答案