【发布时间】:2018-08-01 04:18:46
【问题描述】:
我正在使用一个盒子,出于安全原因,它无法访问互联网。
我已经在盒子上安装了 Anaconda:
python --version # => Python 3.6.5 :: Anaconda, Inc.which python #=> /home/current_user/anaconda3/bin/python
我还安装了cx_oracle 包和oracle-instantclient,方法是下载适当的存档并安装包。证明:
$ conda install cx_oracle-6.3.1-py36h14c3975_0.tar.bz2
$ conda install oracle-instantclient-11.2.0.4.0-0.tar.bz2
$ conda list | grep oracle
cx_oracle 6.3.1 py36h14c3975_0 <unknown>
oracle-instantclient 11.2.0.4.0 0 <unknown>
尽管出于某种原因,Python 找不到 cx_Oracle 模块,尽管能够找到我安装的其他几个模块。
$ python -c "import cx_Oracle"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'cx_Oracle'
$ conda install python-dotenv-0.8.2-py_1.tar.bz2
$ python -c "import dotenv"
# => No problem
【问题讨论】:
-
你确定
python指向conda 的解释器吗?which python显示什么? -
我确定。我已将问题更新为更清楚。
-
可能不相关,但你永远不应该这样做
conda install /path/to/tarball,因为它不会安装依赖项。你应该总是这样做conda install <name-of-package> -
这是不可能的,因为我没有互联网接入,所以我通常手动查找依赖项并下载它们。幸运的是,cx_Oracle 没有任何依赖关系:github.com/oracle/python-cx_Oracle/blob/master/setup.py