1

有一个我想要处理的开源 python 包(toga-android)。为了测试我编写的代码,我必须能够构建我自己的项目,该项目将开源包作为依赖项。我的项目必须使用 setuptools 构建,所以我需要 setuptools 来使用我的包版本来满足依赖关系,而不是从 PyPI 获取包。问题是 setuptools 总是从 PyPI 获取包。

每当我使用 setuptools 构建时,我都会看到:

收集 toga-android==0.3.0.dev8

下载https://files.pythonhosted.org/packages/92/fe/348a39e2e0bbcac2d3ed511dd2b62943b488e7dcb8097c437416caf1c179/toga_android-0.3.0.dev8-py3-none-any.whl

或者

收集 toga-android==0.3.0.dev8

使用缓存的https://files.pythonhosted.org/packages/92/fe/348a39e2e0bbcac2d3ed511dd2b62943b488e7dcb8097c437416caf1c179/toga_android-0.3.0.dev8-py3-none-any.whl

显然,它是从 PyPI 获取包或使用其中的缓存版本。

我已经使用 安装了我的版本pip install -e .,但没有任何效果。我还尝试使用 setup.py 将包的源代码包含在我的项目目录中。Setuptools 显然包含此代码,因为那里的语法错误使构建失败,但它不承认它可以满足依赖关系。它仍然从 PyPI 获取包,并且从包中导入的任何模块都是 PyPI 版本。

如何将 PyPI 中的包的自定义版本用作 setuptools 依赖项?

重现步骤:

  1. pip install 公文包(使用或不使用 virtualenv 无所谓)

  2. git 克隆https://github.com/pybee/toga.git

  3. cd ~/toga/src/core; 须藤 pip 安装 -e 。

  4. cd ~/toga/src/android/; 须藤 pip 安装 -e 。

  5. cd ~/toga/examples/tutorial0

  6. python setup.py 安卓

  7. 输出将显示下载了旧版本的 toga-android,即使它已经安装了 pip。

4

0 回答 0