Traceback (most recent call last): File "D:\pythonProject\脚本文件\遍历查询\111.py", line 1, in <module> import requests File "D:\pythonProject\venv\lib\site-packages\requests\__init__.py", line 43, in <module> import urllib3 File "D:\pythonProject\venv\lib\site-packages\urllib3\__init__.py", line 42, in <module> "urllib3 v2.0 only supports OpenSSL 1.1.1+, currently " ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.1.0h 27 Mar 2018'. See: https://github.com/urllib3/urllib3/issues/2168
时间: 2023-08-03 22:05:10 浏览: 639
这个错误是由于urllib3库需要OpenSSL版本1.1.1或更高版本,而你的'ssl'模块使用的是OpenSSL版本1.1.0h。你可以尝试以下解决方法:
1. 升级OpenSSL版本:你可以尝试升级你的OpenSSL版本到1.1.1或更高版本。你可以根据你的操作系统和安装方式查找相应的升级方法。
2. 更新urllib3库:如果你使用的是pip进行安装,可以尝试更新urllib3库到最新版本。使用以下命令:
```
pip install --upgrade urllib3
```
3. 使用较低版本的urllib3:如果升级OpenSSL或urllib3不可行,你可以尝试使用较低版本的urllib3库。使用以下命令安装指定版本:
```
pip install urllib3==1.25.11
```
注意:这只是一个暂时的解决办法,建议在可能的情况下升级你的OpenSSL和其他相关库以确保安全性和功能性。
希望这些解决方法对你有帮助!如果还有其他问题,请随时提问。
相关问题
Traceback (most recent call last): File "G:\pythonProject4\6.py", line 51, in <module> extract_pos_to_txt(folder_path, output_file) File "G:\pythonProject4\6.py", line 44, in extract_pos_to_txt pos = get_image_pos(file_path) File "G:\pythonProject4\6.py", line 21, in get_image_pos lat_deg = lat[0][0] / lat[0][1] TypeError: 'IFDRational' object is not subscriptable
这个错误的原因与你之前提到的错误相同,是因为你在尝试对 `IFDRational` 类型的对象进行下标操作。 我们需要更改获取纬度和经度的代码,以使用 `IFDRational` 对象的属性和方法来获取其值。以下是更改后的代码:
```python
import os
from PIL import Image
from PIL.ExifTags import TAGS
# 定义函数获取图片位置信息
def get_image_pos(file_path):
with Image.open(file_path) as img:
exif_data = img._getexif()
if exif_data:
exif = {
TAGS[k]: v
for k, v in exif_data.items()
if k in TAGS
}
if 'GPSInfo' in exif:
lat = exif['GPSInfo'][2]
lat_ref = exif['GPSInfo'][1]
lon = exif['GPSInfo'][4]
lon_ref = exif['GPSInfo'][3]
if lat and lat_ref and lon and lon_ref:
lat_deg = lat[0].__truediv__(lat[1])
lat_min = lat[1].__truediv__(lat[2])
lat_sec = lat[2].__truediv__(lat[3])
lat_ref = lat_ref.upper()
lon_deg = lon[0].__truediv__(lon[1])
lon_min = lon[1].__truediv__(lon[2])
lon_sec = lon[2].__truediv__(lon[3])
lon_ref = lon_ref.upper()
lat_decimal = lat_deg + (lat_min / 60.0) + (lat_sec / 3600.0)
lon_decimal = lon_deg + (lon_min / 60.0) + (lon_sec / 3600.0)
if lat_ref == 'S':
lat_decimal = -lat_decimal
if lon_ref == 'W':
lon_decimal = -lon_decimal
return lat_decimal, lon_decimal
return None
# 遍历文件夹中的所有jpg文件,提取位置信息并写入txt文件
def extract_pos_to_txt(folder_path, output_file):
with open(output_file, 'w') as f:
for file_name in os.listdir(folder_path):
if file_name.lower().endswith('.jpg'):
file_path = os.path.join(folder_path, file_name)
pos = get_image_pos(file_path)
if pos:
f.write(f"{file_name}: {pos}\n")
# 测试示例
folder_path = 'path/to/folder'
output_file = 'output.txt'
extract_pos_to_txt(folder_path, output_file)
```
你需要将 `path/to/folder` 替换为你的文件夹路径,然后运行该脚本即可。它将遍历文件夹中的所有jpg文件,提取位置信息,并将其写入名为 `output.txt` 的文本文件中。
Traceback (most recent call last): File "D:\pycharm\oppp\数学建模\统计频率(2).py", line 74, in <module> for file in os.listdir(folder): NotADirectoryError: [WinError 267] 目录名称无效。: 'C:\\Users\\86173\\Desktop\\数据处理预文件\\附录1数据预处理.xlsx' 是什么错误
这个错误是由于你尝试在一个文件而不是一个目录中使用 `os.listdir()` 函数造成的。`os.listdir()` 函数用于列出指定目录中的文件和子目录。要解决这个错误,你需要确保 `folder` 变量指向一个有效的目录路径,而不是一个文件路径。你可以使用 `os.path.dirname()` 函数来获取文件所在目录的路径。例如,你可以将以下代码添加到你的脚本中:
```python
folder = os.path.dirname(folder)
```
这将获取 `folder` 变量指定的文件的目录路径,并将其更新为目录路径。然后,你可以使用 `os.listdir()` 函数来遍历该目录中的文件。
阅读全文