-
设置环境变量: 通过设置环境变量
CRYPTOGRAPHY_OPENSSL_NO_LEGACY
来禁用遗留算法的使用。在命令行中运行以下命令来设置这个环境变量:xport CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
如果您使用的是 Windows 系统,在命令提示符或 PowerShell 中设置环境变量的命令略有不同:
set CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
设置此环境变量后,再次尝试运行 ArcGIS Pro 的深度学习模型训练工具。
-
配置 OpenSSL 以加载遗留提供程序: 如果您需要使用遗留算法,您可以通过修改 OpenSSL 配置文件来告诉 OpenSSL 加载新的提供程序和遗留提供程序。具体步骤如下:
- 使用
openssl version -d
命令找到 OpenSSL 配置文件的目录。 - 在配置文件中添加遗留提供程序的引用,并激活默认和遗留提供程序。
- 使用
openssl list -providers
命令验证更改是否成功。
- 使用
-
检查 OpenSSL 模块路径: 确保
legacy.so
文件存在于 OpenSSL 的默认模块目录中。您可以使用openssl version -m
命令来获取这个目录的路径。如果legacy.so
文件不在该目录中,您可以将其移动到该目录,或者通过设置OPENSSL_MODULES
环境变量指向包含legacy.so
的目录。 -
更新或降级 cryptography 库: 如果问题仍然存在,您可能需要更新或降级 cryptography 库到一个与 OpenSSL 3.0 兼容的版本。您可以使用 pip 来管理 Python 包的版本:
pip install --upgrade cryptography
或者,如果需要降级到旧版本:
pip install cryptography==<version>
其中
<version>
是您希望安装的 cryptography 版本号。 -
联系技术支持: 如果上述方法都无法解决问题,您可能需要联系 ArcGIS Pro 的技术支持团队,以获取更专业的帮助和指导。
1、 系统变量设置:
使用命令提示符(cmd)设置环境变量:
- 按下
Win + R
键打开“运行”对话框。 - 输入
cmd
并按回车键,这将打开命令提示符窗口。 - 在命令提示符窗口中,输入以下命令并按回车键:
et CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
- 为了确保环境变量设置成功,可以使用
echo
命令来显示当前的环境变量值:
如果显示cho %CRYPTOGRAPHY_OPENSSL_NO_LEGACY%
1
,则表示设置成功。
使用 PowerShell 设置环境变量:
- 按下
Win + X
键,然后选择“Windows PowerShell”或“Windows PowerShell (管理员)”。 - 在 PowerShell 窗口中,输入以下命令并按回车键:
env:CRYPTOGRAPHY_OPENSSL_NO_LEGACY = "1"
- 同样地,您可以使用
echo
命令来验证环境变量是否设置成功:
如果输出为cho $env:CRYPTOGRAPHY_OPENSSL_NO_LEGACY
1
,则表示环境变量已正确设置。
请注意,通过上述方法设置的环境变量仅在当前打开的命令提示符或 PowerShell 会话中有效。如果您关闭了这些窗口或重启了计算机,这些设置将会丢失。 要使环境变量永久生效,您需要通过系统的环境变量设置界面进行配置:
- 右键点击“此电脑”或“我的电脑”,然后选择“属性”。
- 在打开的系统窗口中,点击左侧的“高级系统设置”。
- 在“系统属性”窗口中,点击“环境变量”按钮。
- 在“系统变量”区域,点击“新建”来添加新的环境变量,或者选择已有的变量并点击“编辑”来修改。
- 在“变量名”字段中输入
CRYPTOGRAPHY_OPENSSL_NO_LEGACY
,在“变量值”字段中输入1
。 - 点击“确定”保存更改,并关闭所有剩余的系统属性窗口。
完成这些步骤后,重新启动计算机以确保环境变量的更改生效。之后,您可以尝试再次运行 ArcGIS Pro 的深度学习模型训练工具,看看问题是否已解决。
2、配置 OpenSSL 以加载遗留提供程序:
1. 找到 OpenSSL 配置文件的目录
首先,您需要找到 OpenSSL 的配置文件目录。打开命令提示符(cmd)或 PowerShell,并运行以下命令:
openssl version -d
这个命令会输出 OpenSSL 的配置目录路径。请注意 OPENSSLDIR
后面的路径,这是您需要关注的目录。
2. 定位和编辑 OpenSSL 配置文件
接下来,您需要找到并编辑 OpenSSL 的主配置文件 opensslf
。这个文件通常位于上面步骤中找到的目录下。使用文件资源管理器导航到该目录,并找到 opensslf
文件。
打开 opensslf
文件,您可以使用文本编辑器,如 Notepad++ 或其他高级文本编辑器。
3. 修改配置文件以加载遗留提供程序
在 opensslf
文件中,您需要进行两处修改:
a. 添加遗留提供程序的引用
找到 [provider_sect]
部分,它可能看起来像这样:
[provider_sect]
default = default_sect
在这一节中,添加对遗留提供程序的引用:
[provider_sect]
default = default_sect
legacy = legacy_sect
b. 激活默认和遗留提供程序
在文件中找到 [default_sect]
部分,并确保激活默认和遗留提供程序。您可能需要取消注释(删除 #
符号)并添加 activate = 1
行:
[default_sect]
activate = 1
[legacy_sect]
activate = 1
4. 保存并关闭配置文件
完成修改后,保存并关闭 opensslf
文件。
5. 验证更改
最后,您需要验证 OpenSSL 是否已经加载了遗留提供程序。再次打开命令提示符(cmd)或 PowerShell,并运行以下命令:
openssl list -providers
这个命令应该会列出所有已激活的提供程序,包括 default
和 legacy
。如果 legacy
提供程序的状态显示为 active
,那么您已经成功配置 OpenSSL 以加载遗留提供程序。
请注意,修改系统级的 OpenSSL 配置文件可能会影响其他依赖 OpenSSL 的应用程序。如果您在操作过程中遇到问题,建议创建配置文件的备份,以便在需要时可以恢复到原始状态。
-
设置环境变量: 通过设置环境变量
CRYPTOGRAPHY_OPENSSL_NO_LEGACY
来禁用遗留算法的使用。在命令行中运行以下命令来设置这个环境变量:xport CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
如果您使用的是 Windows 系统,在命令提示符或 PowerShell 中设置环境变量的命令略有不同:
set CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
设置此环境变量后,再次尝试运行 ArcGIS Pro 的深度学习模型训练工具。
-
配置 OpenSSL 以加载遗留提供程序: 如果您需要使用遗留算法,您可以通过修改 OpenSSL 配置文件来告诉 OpenSSL 加载新的提供程序和遗留提供程序。具体步骤如下:
- 使用
openssl version -d
命令找到 OpenSSL 配置文件的目录。 - 在配置文件中添加遗留提供程序的引用,并激活默认和遗留提供程序。
- 使用
openssl list -providers
命令验证更改是否成功。
- 使用
-
检查 OpenSSL 模块路径: 确保
legacy.so
文件存在于 OpenSSL 的默认模块目录中。您可以使用openssl version -m
命令来获取这个目录的路径。如果legacy.so
文件不在该目录中,您可以将其移动到该目录,或者通过设置OPENSSL_MODULES
环境变量指向包含legacy.so
的目录。 -
更新或降级 cryptography 库: 如果问题仍然存在,您可能需要更新或降级 cryptography 库到一个与 OpenSSL 3.0 兼容的版本。您可以使用 pip 来管理 Python 包的版本:
pip install --upgrade cryptography
或者,如果需要降级到旧版本:
pip install cryptography==<version>
其中
<version>
是您希望安装的 cryptography 版本号。 -
联系技术支持: 如果上述方法都无法解决问题,您可能需要联系 ArcGIS Pro 的技术支持团队,以获取更专业的帮助和指导。
1、 系统变量设置:
使用命令提示符(cmd)设置环境变量:
- 按下
Win + R
键打开“运行”对话框。 - 输入
cmd
并按回车键,这将打开命令提示符窗口。 - 在命令提示符窗口中,输入以下命令并按回车键:
et CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1
- 为了确保环境变量设置成功,可以使用
echo
命令来显示当前的环境变量值:
如果显示cho %CRYPTOGRAPHY_OPENSSL_NO_LEGACY%
1
,则表示设置成功。
使用 PowerShell 设置环境变量:
- 按下
Win + X
键,然后选择“Windows PowerShell”或“Windows PowerShell (管理员)”。 - 在 PowerShell 窗口中,输入以下命令并按回车键:
env:CRYPTOGRAPHY_OPENSSL_NO_LEGACY = "1"
- 同样地,您可以使用
echo
命令来验证环境变量是否设置成功:
如果输出为cho $env:CRYPTOGRAPHY_OPENSSL_NO_LEGACY
1
,则表示环境变量已正确设置。
请注意,通过上述方法设置的环境变量仅在当前打开的命令提示符或 PowerShell 会话中有效。如果您关闭了这些窗口或重启了计算机,这些设置将会丢失。 要使环境变量永久生效,您需要通过系统的环境变量设置界面进行配置:
- 右键点击“此电脑”或“我的电脑”,然后选择“属性”。
- 在打开的系统窗口中,点击左侧的“高级系统设置”。
- 在“系统属性”窗口中,点击“环境变量”按钮。
- 在“系统变量”区域,点击“新建”来添加新的环境变量,或者选择已有的变量并点击“编辑”来修改。
- 在“变量名”字段中输入
CRYPTOGRAPHY_OPENSSL_NO_LEGACY
,在“变量值”字段中输入1
。 - 点击“确定”保存更改,并关闭所有剩余的系统属性窗口。
完成这些步骤后,重新启动计算机以确保环境变量的更改生效。之后,您可以尝试再次运行 ArcGIS Pro 的深度学习模型训练工具,看看问题是否已解决。
2、配置 OpenSSL 以加载遗留提供程序:
1. 找到 OpenSSL 配置文件的目录
首先,您需要找到 OpenSSL 的配置文件目录。打开命令提示符(cmd)或 PowerShell,并运行以下命令:
openssl version -d
这个命令会输出 OpenSSL 的配置目录路径。请注意 OPENSSLDIR
后面的路径,这是您需要关注的目录。
2. 定位和编辑 OpenSSL 配置文件
接下来,您需要找到并编辑 OpenSSL 的主配置文件 opensslf
。这个文件通常位于上面步骤中找到的目录下。使用文件资源管理器导航到该目录,并找到 opensslf
文件。
打开 opensslf
文件,您可以使用文本编辑器,如 Notepad++ 或其他高级文本编辑器。
3. 修改配置文件以加载遗留提供程序
在 opensslf
文件中,您需要进行两处修改:
a. 添加遗留提供程序的引用
找到 [provider_sect]
部分,它可能看起来像这样:
[provider_sect]
default = default_sect
在这一节中,添加对遗留提供程序的引用:
[provider_sect]
default = default_sect
legacy = legacy_sect
b. 激活默认和遗留提供程序
在文件中找到 [default_sect]
部分,并确保激活默认和遗留提供程序。您可能需要取消注释(删除 #
符号)并添加 activate = 1
行:
[default_sect]
activate = 1
[legacy_sect]
activate = 1
4. 保存并关闭配置文件
完成修改后,保存并关闭 opensslf
文件。
5. 验证更改
最后,您需要验证 OpenSSL 是否已经加载了遗留提供程序。再次打开命令提示符(cmd)或 PowerShell,并运行以下命令:
openssl list -providers
这个命令应该会列出所有已激活的提供程序,包括 default
和 legacy
。如果 legacy
提供程序的状态显示为 active
,那么您已经成功配置 OpenSSL 以加载遗留提供程序。
请注意,修改系统级的 OpenSSL 配置文件可能会影响其他依赖 OpenSSL 的应用程序。如果您在操作过程中遇到问题,建议创建配置文件的备份,以便在需要时可以恢复到原始状态。