首页 > 解决方案 > Python 无法导入使用 pip venv 安装的库

问题描述

我查看了几篇文章和文章,但似乎找不到解决方案。我需要将jenkspy 用于特定任务,但我的Python3x 安装了一个名为ArcGIS Pro 的软件,该软件指定了默认的python 环境“只读”,这意味着未随它安装的软件包必须安装在虚拟环境中。

所以,我打开命令行并运行:

py -m venv env
py -m pip install jenkspy --user

如果我继续从命令窗口运行 python,我可以导入 jenkspy 没问题。但是,当我尝试将其导入 iPython 或将其作为脚本加载到 pythonWin 中时,我得到:

import jenkspy
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'jenkspy'

所以我回到命令窗口并运行 python 来定位 jenkspy 的路径:

import sys
print (sys.path)

返回:

['', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Lib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Lib\\idlelib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\python37.zip', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\DLLs', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64', 'C:\\Users\\johnsmith\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib\\site-packages']

我在这个环境中导航到本机 idle.py 文件并导入 jenkspy。没问题。我从空闲控制台打印 sys.path 。与命令行中的结果相同。

然后我回到 iPython 并运行:

import sys
paths = ['C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Lib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\Lib\\idlelib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\python37.zip', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\DLLs', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64', 'C:\\Users\\johnsmith\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib\\site-packages']

for p in paths:
    sys.path.append(p)

接着:

import jenkspy

我得到这个错误:

ImportError                               Traceback (most recent call last)
<ipython-input-19-88ab181dc114> in <module>
----> 1 import jenkspy

~\AppData\Roaming\Python\Python37\site-packages\jenkspy\__init__.py in <module>
      3 __version__ = "0.1.5"
      4 
----> 5 from .core import jenks_breaks
      6 
      7 

~\AppData\Roaming\Python\Python37\site-packages\jenkspy\core.py in <module>
      7     from math import isinf, isnan
      8     isfinite = lambda x: not isinf(x) and not isnan(x)
----> 9 from . import jenks
     10 try:
     11     import numpy as np

ImportError: cannot import name 'jenks'

我需要做什么才能使用独立脚本和//iPython 导入 jenkspy 或其他 python 安装包/模块?

标签: windowsvirtualenvpython-3.7syspython-venv

解决方案


推荐阅读