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

标签 python module virtualenv

我有什么:

  • 我想转换成模块的本地 Python3 文件 test_module
  • test_module包含空 __init__.py 的文件夹, 一个 setup.py文件(见下文)和具有多个源的子目录
    文件

  • 我想要的:
  • 不断努力和改进test_module本地
  • 有一个简单的安装方法test_module及其在我自己的虚拟环境中本地的所有依赖项(使用 python3 -m venv my_environment 创建)
  • 通过 python myexample.py 运行使用模块的文件,而不必在每次进入或退出 my_environment 时调整我的本地 PYTHONPATH 变量
  • 通过 git 与其他人共享我的 python 代码,并允许他们使用相同的过程(尽可能简单)将代码本地安装在他们的机器上
  • 学习如何创建我自己的模块的最佳实践

  • 我现在是怎么做的:
  • pip freeze > requirements.txtpip install -r requirements.txt用于安装依赖项
  • 添加 export PYTHONPATH="${PYTHONPATH}:."my_environment/bin/activate , 在搜索路径中有我自己的模块
    (如在此处找到:How do you set your pythonpath in an already-created virtualenv?)

  • 我想知道是否有基于 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
      )
    

    最佳答案

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

    例子:

    pip install -e git+https://github.com/me/test_module/#egg=test-module
    

    如果您已经安装并想从 repo 中提取最新代码,请添加 --upgrade切换到上面。

    关于python - 在虚拟环境中安装我自己的 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52546403/

    相关文章:

    haskell - 为什么我可以使用我的值构造函数,即使我不导出它?

    python - python包的版本管理

    python2.7在virtualenv中安装MySQL-python错误 "failed with exit status 2"

    python - 在python中按索引访问字典值

    javascript - 如何在 javascript 字符串文字中使用 `onclick`

    python - 最小最大缩放后随机森林回归 MAPE 除以零误差

    ruby-on-rails - 将 ActiveRecord 方法放入模块中的优点和缺点是什么?

    python - 如何验证虚拟环境的完整性

    python - 使用 pandas TimeSeries 创建热图

    python - Django - 管理站点 - 如何保护它?