在虚拟环境中安装我自己的 python 模块

unt*_*gam 6 python module virtualenv

我拥有的:

  • 我想变成模块的本地 Python3 文件 test_module

  • test_module包含一个空的__init__.py、一个setup.py文件(见下文)和包含多个源文件的子目录的文件夹

我想要的是:

  1. test_module当地不断努力和改进

  2. 有一种简单的方法可以test_module在我自己的虚拟环境中本地安装及其所有依赖项(使用创建python3 -m venv my_environment

  3. 运行通过 使用模块的文件python myexample.py,而不必在每次进入或退出时调整我的本地 PYTHONPATH 变量my_environment

  4. 通过 git 与其他人共享我的 python 代码,并允许他们使用相同的过程在他们的机器上本地安装他们的代码(尽可能简单)

  5. 学习如何创建自己的模块的最佳实践

我现在是怎么做的:

我想知道是否有基于 的“更清洁”的解决方案setup.py,可能涉及pip install ./test_module处理 2.-3 的类似或类似内容。自动地。

我当前的setup.py文件如下所示

 from setuptools import setup

 setup(
    name='test_module',
    version='0.1',
    description='Some really good stuff, that I am still working on',
    author='Bud Spencer',
    author_email='bud.spencer@stackoverflow.com',
    packages=['test_module'],  # same as name
    install_requires=['numpy', 'scipy', 'sklearn', 'argparse'], # external packages as dependencies
  )
Run Code Online (Sandbox Code Playgroud)

小智 4

听起来您想pip install -e <path/url>从虚拟环境中运行,它将setup.py从本地路径或 Git 存储库安装一个包(带有您拥有的文件)。有关后者语法的说明,请参阅https://pip.pypa.io/en/stable/reference/pip_install/#vcs-support 。

例子:

pip install -e git+https://github.com/me/test_module/#egg=test-module
Run Code Online (Sandbox Code Playgroud)

如果您已经安装并希望从存储库中提取最新代码,请--upgrade在上面添加一个开关。