python - 使用 conda 获取大小写正确的 cx_Oracle

标签 python pip anaconda cx-oracle conda

我是 Python 新手。我在 Ubuntu 上使用 Anaconda 4.1.1 (Python 3.5.2) 发行版。我开始从事一个使用 cx_Oracle 的项目. O 当然可以使用 pip 安装 cx_Oracle

pip install cx_Oracle

但似乎每个人都在说 Anaconda 的 conda 是比 pipvirtualenv 更好的包管理器、虚拟环境管理器和依赖管理器> 放在一起。我更愿意只使用 conda 来管理所有内容。

所以我制作了一个包含以下行的 requirements.txt 文件(我的一些队友仍将使用 pipvirtualenv)。 (我要支持Python 3.5,所以需要cx_Oracle 5.2.1,目前最新的。)

cx_Oracle==5.2.1

然后我告诉 conda 创建一个虚拟环境 foobar:

conda create -n foobar --file requirements.txt

这失败了;不幸的是 cx_Oracle 5.2.1 尚未在 Continuum conda 存储库中(尽管自发布以来已经过去了半年)。然而,有几个 channel (例如 mgckind)声称提供 5.2.1 版。只有一个问题:所有 channel 都提供 cx_oracle 而不是 cx_Oracle(注意大小写差异)。所以这行不通:

conda create -n foobar -c mgckind --file requirements.txt

即使我在上面的例子中指定了一个 channel ,即使 requirements.txt 清楚地写着 cx_Oracleconda 也会降低 cx_oracle 带有小写的 o。因为 Python 模块导入显然区分大小写,所以我的所有测试都失败了,因为它们找不到带有大写 Ocx_Oracle

我是不是因为我是 Python 新手而错过了一些简单的东西?还是 Anaconda 真的落后于时代并且与 cx_Oracle 不兼容,这意味着我将不得不使用 pip install 并将其从 PyPI 中下载下来?

如果真的存在大小写差异,这种情况在 Conda 和 PiPY 上是否常见?仅以小写字母命名事物是 Conda 政策吗?其他人如何处理差异?

最佳答案

conda 包名称不会影响您在 python 中导入代码的方式。查看 linux-64 包 here例如,虽然包名称是 cx_oracle 以符合 conda 生态系统标准,但在 python 中,您必须使用 import cx_Oracle 导入该包。 PyPI 上有许多 python 包的示例,其中包名称与在 python 代码中导入包的方式不同。我猜这只是 Python 的怪癖之一。

关于python - 使用 conda 获取大小写正确的 cx_Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420508/

相关文章:

python - Pylons REPL 在运行的 Web 服务器中重新评估代码

python - 属性错误 : Object ParquetDataSet cannot be loaded from kedro. extras.datasets.pandas

python-3.x - 如何在 Mac OS X Big Sur 上安装 Python 3.9 的 pandas 模块?

python - Pipenv 与 conda ?

python-3.x - Jupyter : No module named 'imblearn" after installation

python - 在Python 2.6.6中使用pyopengl遇到麻烦

python - 将分钟转换为 HH :MM format in Python

python - 如何使用 Pandas 将值有效地分箱到重叠的分箱中?

python - pip 显示错误 'lsb_release -a' 返回非零退出状态 1

powershell - 如何从powershell激活conda环境?