多进程在windows安装的jupyter notebook 可能运行不了,显示一直运行

Python多进程质数判断代码实践
博客主要围绕Python多进程进行质数判断展开。展示了在Jupyter Notebook、不同操作系统(Mac、Linux、Windows)及不同开发环境(Spyder)下的代码实现,还引入了numba库进行优化,解决了部分环境下代码运行的问题。

#jupyter Notebook

import multiprocessing as mp

pool = mp.Pool(processes =4)

p1 = int(1e8 + 7)

#Determine whether it is a prime number
def is_prime(I):
    if I%2 ==0:#################
        return False
    for i in range(3, int(I**0.5) + 1, 2): ###############
        if I%i ==0:##########
            return False##########
    return True#######

%time pool.map(is_prime, 10*[p1])

mac 或者 Linux 或许可以运行得到如下结果

我在windows版本下一直运行就是没有结果

之后在 Spyder中因为运行不了所以更改了代码

import multiprocessing as mp
p1 = int(1e8 + 7)

#Determine whether it is a prime number
def is_prime(I):
    if I%2 ==0:#################
        return False
    for i in range(3, int(I**0.5) + 1, 2): ###############
        if I%i ==0:##########
            return False##########
    return True#######

if __name__ == '__main__':
    pool = mp.Pool(processes =4)
    print(pool.map(is_prime, 10*[p1]) )

2. #Jupyter in MAC OS or Linux OS 

import numba
import multiprocessing as mp

p2 = 100109100129162907

pool = mp.Pool(processes =4)

#Determine whether it is a prime number
def is_prime(I):
    if I%2 ==0:#################
        return False
    for i in range(3, int(I**0.5) + 1, 2): ###############
        if I%i ==0:##########
            return False##########
    return True#######

#pool.map(is_prime_nb, 10 * [p2])
is_prime_nb = numba.jit(is_prime)

show:

#Spyder in windows 7

import numba
import multiprocessing as mp

p2 = 100109100129162907

#Determine whether it is a prime number
def is_prime(I):
    if I%2 ==0:#################
        return False
    for i in range(3, int(I**0.5) + 1, 2): ###############
        if I%i ==0:##########
            return False##########
    return True#######

#pool.map(is_prime_nb, 10 * [p2])
is_prime_nb = numba.jit(is_prime)

if __name__ == '__main__':
    pool = mp.Pool(processes =4)
    print(pool.map(is_prime_nb, 10 * [p2]) )

### 问题分析 在使用 **Jupyter Notebook** 运行代码时,出现“未连接”或“内核忙”的提示,通常表示当前的计算内核未能正常启动或与前端界面之间的通信出现了问题。这种问题可能由多个因素导致,包括但不限于: - **PyZMQ 版本不兼容** - 内核配置错误 - 用户名路径包含中文字符 - 浏览器缓存或默认浏览器设置异常 - Jupyter 配置文件异常 --- ### 解决方法 #### 1. 检查并降级 `pyzmq` 版本 **PyZMQ** 是 Jupyter 内部用于进程间通信的关键依赖库,若其版本过高可能导致与 Jupyter 的兼容性问题。 执行以下命令查看当前版本: ```bash pip show pyzmq ``` 如发现版本过高(例如 23.x 或更高),可尝试将其降级至稳定版本: ```bash pip install pyzmq==22.3.0 ``` 安装完成后重启 Jupyter Notebook 并测试是否恢复正常[^1]。 #### 2. 修改用户名路径为英文 若操作系统用户名为中文,可能导致 Jupyter 在加载内核路径时出现问题。建议创建一个新的英文用户名,并将工作目录迁移到新用户下进行测试。 此问题常见于 Windows 系统中,尤其是使用中文用户名安装 PythonJupyter 的情况。 #### 3. 更换或清除浏览器缓存 有时浏览器缓存会导致 Jupyter 页面无法正确加载内核连接信息。可以尝试以下操作: - 使用隐身模式打开 Jupyter Notebook - 清除浏览器缓存或更换浏览器(推荐使用 Chrome 或 Edge) - 设置 Jupyter 默认浏览器为指定浏览器(如 Microsoft Edge): ```python c.NotebookApp.browser = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe" ``` 修改后保存配置文件并重启服务[^4]。 #### 4. 重启或更换内核 在 Jupyter Notebook 界面中点击菜单栏的 **Kernel > Restart Kernel...**,尝试重新加载内核。 如果仍然无效,可以尝试重新安装 IPython 内核: ```bash python -m pip install ipykernel --force-reinstall ``` 然后在 Jupyter 中选择正确的内核[^3]。 #### 5. 检查 Jupyter 配置文件 生成 Jupyter 配置文件: ```bash jupyter notebook --generate-config ``` 检查是否存在异常配置项,必要时删除或重命名原配置文件后重新生成。 #### 6. 查看控制台日志排查错误 运行 Jupyter Notebook 时,在终端观察是否有报错信息输出,重点关注连接失败、端口占用、内核启动失败等关键词,有助于定位具体问题。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LIQING LIN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值