gpt4 book ai didi

Python 脚本适用于一个文件夹,但不适用于子文件夹。

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:29 24 4
gpt4 key购买 nike

大家晚上好,

我正在尝试使用 python 进行一些机器学习,因此我导入了模块 scikit-learn:

from sklearn.preprocessing import MinMaxScaler

它给了我这个奇怪的错误:

Traceback (most recent call last):

File "<ipython-input-22-b55a4eaccb0b>", line 1, in <module>
from sklearn.preprocessing import MinMaxScaler

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\preprocessing\__init__.py", line 6, in <module>
from ._function_transformer import FunctionTransformer

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\preprocessing\_function_transformer.py", line 2, in <module>
from ..utils import check_array

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\utils\__init__.py", line 18, in <module>
from ..externals.joblib import cpu_count

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\externals\joblib\__init__.py", line 128, in <module>
from .parallel import Parallel

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 24, in <module>
from ._multiprocessing_helpers import mp

File "C:\Users\Francesco\Anaconda3\lib\site-packages\sklearn\externals\joblib\_multiprocessing_helpers.py", line 24, in <module>
_sem = mp.Semaphore()

AttributeError: module 'multiprocessing' has no attribute 'Semaphore'

这些错误是从 Anaconda (Spider) 复制的,但即使从命令行启动 python session 也会出现这些错误。我运行脚本的文件夹是:

C:\Users\Francesco\Desktop\script_python

非常奇怪的事情是,如果我从桌面运行相同的脚本,只需一个文件夹,它就可以工作!

C:\Users\Francesco\Desktop\ <-- Here it works!!

我发现问题与多处理模块有关,这里是这个奇怪行为的快照:

Summary of the problem

最佳答案

您运行脚本的目录中可能有一个multiprocessing模块。

通常,在 Python 中,运行脚本的路径优先于 Python 环境,因此它会首先尝试选择该路径。这意味着当 sklearn 导入 multiprocessing 时,它使用您的模块,而不是内置的 multiprocessing

出现此类错误时,识别错误的一种方法是运行

python -c "import multiprocessing; print(multiprocessing.__dir__)"

仔细检查正在使用哪个模块。

关于Python 脚本适用于一个文件夹,但不适用于子文件夹。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com