Python3环境变量配置:在同一环境中使用不同版本的 python包

我需要在同一个 virtualenv 中安装不同版本的elasticseach-dsl。我希望能够使用某种别名导入它们:

import elasticsearch_dsl1
import elasticsearch_dsl2
import elasticsearch_dsl5

我想创建名为elasricsearch_dsl*的软件包,并在其setup.py中添加正确版本的elasticsearch_dsl的安装要求,但是当我安装软件包时,会导致冲突,因为我的所有软件包都需要同一库的不同版本。

非常感谢大家

0

简短答案:

这是不可能的。

0

我能够找到解决我的问题。

我下载了不同版本的elasticsearch-dsl库的源代码

然后将导入语句更改为使用elasticsearch1elasticsearch2等库,而不是elasticsearchv1.x 和 v2.x

# example `elasticsearch-dsl` v5.4.0
from elasticsearch import Elasticsearch #  --> from elasticsearch5 import Elasticsearch

修改了setup.py,将每个版本的elasticsearch-dsl的依赖关系从elasticsearch更改为elasticsearch1elasticsearch2

我很幸运,因为存在elasticsearch1elasticsearch2...否则我将不得不为他们重复相同的过程。

我不为这个黑客感到骄傲,但它奏效了。

setup.py

elasticsearch-dls==7.3.0setup.py文件的示例,然后是elasticsearch-dsl7

from os.path import join, dirname
from setuptools import setup, find_packages
VERSION = (7, 3, 0)
__version__ = VERSION
__versionstr__ = ".".join(map(str, VERSION))
f = open(join(dirname(__file__), "README"))
long_description = f.read().strip()
f.close()
install_requires = [
    "six",
    "python-dateutil",
    "elasticsearch7",  # before "elasticsearch>=7.0.0,<8.0.0"    <---
    # ipaddress is included in stdlib since python 3.3
    'ipaddress; python_version<"3.3"',
]
tests_require = [
    "mock",
    "pytest>=3.0.0",
    "pytest-cov",
    "pytest-mock<3.0.0",
    "pytz",
    "coverage<5.0.0",
]
setup(
    name="elasticsearch-dsl7", #    <---
    description="Python client for Elasticsearch",
    license="Apache-2.0",
    url="https://github.com/elasticsearch/elasticsearch-dsl-py",
    long_description=long_description,
    version=__versionstr__,
    author="Honza Král",
    author_email="honza.kral@gmail.com",
    maintainer="Seth Michael Larson",
    maintainer_email="seth.larson@elastic.co",
    packages=find_packages(where=".", exclude=("test_elasticsearch_dsl*",)),
    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
    classifiers=[
        "Development Status :: 4 - Beta",
        "License :: OSI Approved :: Apache Software License",
        "Intended Audience :: Developers",
        "Operating System :: OS Independent",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: Implementation :: CPython",
        "Programming Language :: Python :: Implementation :: PyPy",
    ],
    install_requires=install_requires,
    test_suite="test_elasticsearch_dsl.run_tests.run_all",
    tests_require=tests_require,
    extras_require={"develop": tests_require + ["sphinx", "sphinx_rtd_theme"]},
)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(866)
Xp算号器:仿真器未运行 WindowsXP
上一篇
Shu f:PythonLoShu魔术
下一篇

相关推荐

  • python 大文件处理:如何使用Python处理大型文件

    Python 大文件处理指的是处理超过内存可以容纳的大文件。这种情况下,我们可以使用 Python 的内置函数 open() 来打开文件,并使用 read() 或 readlines() 来读取文件内容,以及 write() 来写入文件内容。…

    2023-08-11 13:08:46
    0 64 79
  • python培训心得体会:学习Python,拓展自我的可能性

    示例示例参加python培训,我受益匪浅。我深刻体会到了python的强大之处,它是一种高效、易学、易用的编程语言,可以让我们快速的实现编程思想,有效的提升编程效率。我也深刻理解了python的语法特点,比如变量、函数、类、模块等,以及它们之间的关系,这对以后的编程工作有很大的帮助。我还学习到了如何使用python进行数据处理,以及如何使用python实现web应用,这些都非常有用。下面是一个简单的python代码示例,用来计算1到100的和:…

    2023-07-19 02:14:49
    0 11 42
  • python求质因数:Python实现质因数分解的算法

    Python求质因数是指把一个正整数分解成若干个质数的乘积,这些质数就是该数的质因数。下面是一个Python代码实现求质因数的例子:…

    2023-03-04 13:27:16
    0 25 46
  • python基础问题:如何使用Python提高编程效率

    示例示例Python基础问题:如何在Python中定义函数答:在Python中定义函数的语法如下:def):…

    2023-07-19 07:08:57
    0 81 42
  • python面向:如何使用Python面向对象编程

    Python面向对象是一种面向对象编程(OOP)的范例,它能够让你创建可重用的代码,这样你就可以在构建应用程序时使用它们。下面是一个简单的Python面向对象的示例:…

    2023-04-01 09:37:30
    0 30 76
  • python计算1到100的和5050

    Python计算1到100的和的代码如下:上面的代码使用for循环来遍历1到100的数字,每次将遍历到的数字加到sum中,最后输出sum的值即可。…

    2023-10-03 12:08:18
    0 27 66
  • python 列表元素替换:使用Python创建美丽的图像

    Python 列表元素替换是指将列表中的某个元素替换成另一个元素,可以使用列表的 index() 方法和 insert() 方法来实现。…

    2023-08-29 09:24:30
    0 89 37
  • python prod函数:如何使用Python函数prod来提高生产效率

    Python prod 函数是一个内置函数,用于计算可迭代对象中元素的乘积。它接受一个可迭代对象作为参数,并返回该可迭代对象中元素的乘积。…

    2023-02-09 14:50:30
    0 55 47

发表评论

登录 后才能评论

评论列表(16条)