python - Python 找不到模块,即使在路径更新和为子目录创建空白 __init__.py 文件之后
问题描述
我已经在虚拟环境(/home/jamesmcintyre/.local/pipx/venvs/opencv-python)中安装了 OpenCV,并且我已将 '/home/jamesmcintyre/.local/pipx/venvs' 添加到我的 sys.path 中,如此处所述
我还创建了一个__init__.py
在 OpenCV-python 的相关子目录中调用的空文本文件,但import cv2
仍然无法正常工作。
谁能告诉我为什么这不起作用以及如何让模块从非常规目录/子目录中加载?
操作系统:Pop20.04(兼容 Ubuntu 的 Linux)
解决方案
尽管我不确定它是否是最好的,但我已经找到了解决我自己问题的方法。
您可以在导入之前更改工作目录,然后再切换回来,而不是更新路径。
这是执行此操作的代码:
def PipxImport(ImportName,*InstallName):
import os
CL = os.getcwd()
FolderName = ImportName
i = 0
for arg in InstallName:
if i == 0:
FolderName = arg
else:
break
i = i + 1
if os.name == 'nt':
os.chdir(os.path.expanduser("~") + '\\.local\\pipx\\venvs\\' + FolderName + '\\Lib\\site-packages')
else:
os.chdir(os.path.expanduser("~") + '/.local/pipx/venvs/' + FolderName + '/lib64/python3.8/site-packages')
ImportName = __import__(ImportName)
os.chdir(CL)
return ImportName
我还为它创建了一个 repo,它比上面的更可能是最新的,并且还解释了如何使用它等。
推荐阅读
- html - 在 github 页面中嵌入视频不显示任何内容
- r - 反应式传单地图无法识别第二个调色板
- python - 在不使用 RE 的情况下计算字符串列表中的音节 Python
- windows - 如何在 pycharm 上安装 openCV
- php - 在数组php mysql中查找和使用重复元素
- java - 计算文件中每个单词出现的频率
- java - 使用 Micronaut AMQP 的请求/响应模式
- java - 使用静态方法初始化的私有字段的单元测试方法
- python - django 中的一个视图中的两个模型集
- c# - 使用 Xamarin MVVM Prism 通过 Searchbar 中的 TextChanged 事件更新 ListView