安装TensorFlow后导入失败,出现multiprocessing循环导入错误求助
问题解决:TensorFlow导入时出现循环导入错误
错误日志
2023-06-29 17:46:02.591451: I tensorflow/tsl/cuda/cudart_stub.cc:28] 未在你的机器上找到CUDA驱动,将不会使用GPU。 2023-06-29 17:46:02.822224: I tensorflow/tsl/cuda/cudart_stub.cc:28] 未在你的机器上找到CUDA驱动,将不会使用GPU。 2023-06-29 17:46:02.822996: I tensorflow/core/platform/cpu_feature_guard.cc:182] 此TensorFlow二进制文件针对性能关键操作优化,以使用可用的CPU指令。 要启用以下指令:AVX2 FMA,请在其他操作中使用适当的编译器标志重新构建TensorFlow。 Traceback (most recent call last): File "/home/dahe/Nuclear Launch Codes/PYTHON/lol.py", line 1, in <module> import tensorflow File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/__init__.py", line 37, in <module> from tensorflow.python.tools import module_util as _module_util File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/__init__.py", line 45, in <module> from tensorflow.python.feature_column import feature_column_lib as feature_column File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/feature_column/feature_column_lib.py", line 18, in <module> from tensorflow.python.feature_column.feature_column import * File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/feature_column/feature_column.py", line 143, in <module> from tensorflow.python.layers import base File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/layers/base.py", line 16, in <module> from tensorflow.python.keras.legacy_tf_layers import base File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/__init__.py", line 25, in <module> from tensorflow.python.keras import models File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/models.py", line 20, in <module> from tensorflow.python.keras import metrics as metrics_module File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/metrics.py", line 34, in <module> from tensorflow.python.keras import activations File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/activations.py", line 18, in <module> from tensorflow.python.keras.layers import advanced_activations File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/layers/__init__.py", line 22, in <module> from tensorflow.python.keras.engine.input_layer import Input File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/input_layer.py", line 24, in <module> from tensorflow.python.keras.engine import base_layer File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 48, in <module> from tensorflow.python.keras.engine import base_layer_utils File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_utils.py", line 31, in <module> from tensorflow.python.keras.utils import tf_utils File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 22, in <module> from tensorflow.python.distribute.coordinator import cluster_coordinator as coordinator_lib File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/distribute/coordinator/cluster_coordinator.py", line 30, in <module> from tensorflow.python.distribute import parameter_server_strategy_v2 File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/distribute/parameter_server_strategy_v2.py", line 24, in <module> from tensorflow.python.distribute import cross_device_ops as cross_device_ops_lib File "/home/dahe/.local/lib/python3.8/site-packages/tensorflow/python/distribute/cross_device_ops.py", line 19, in <module> import multiprocessing.dummy File "/home/dahe/Nuclear Launch Codes/PYTHON/multiprocessing.py", line 9, in <module> from multiprocessing import Process, cpu_count ImportError: cannot import name 'Process' from partially initialized module 'multiprocessing' (most likely due to a circular import) (/home/dahe/Nuclear Launch Codes/PYTHON/multiprocessing.py)
问题原因
项目目录下存在名为multiprocessing.py的自定义文件,与Python标准库的multiprocessing模块重名。当TensorFlow尝试导入标准库的multiprocessing.dummy时,会优先加载你自己的文件,而你的文件又尝试从标准库导入Process,进而引发循环导入错误。
注:前面的CUDA相关提示仅为警告,不会导致TensorFlow崩溃,仅表示当前使用CPU运行,不影响功能启动。
解决步骤
- 将自定义的
multiprocessing.py文件重命名为不与标准库冲突的名称,比如my_multiprocessing.py。 - 删除项目目录下自动生成的
__pycache__文件夹,避免缓存的旧文件影响导入。
内容的提问来源于stack exchange,提问作者wade watts
相关产品推荐
相关产品推荐

