conda 创建的绿色版 python 之 zerorpc 运行问题解决 (sys/un.h 找不到)

简介

在利用 conda create 制作绿色 python 时,安装 zerorpc 包 import 遇到问题:

“sys/un.h”: No such file or directory

本文介绍此情况的解决办法。

原因分析

zerorpc 用到 zmq,是 zmq 找不到 dll 导致无法正常运行,故,简单办法就是把相应的 dll 复制过来。
相应 dll 有两个,一个是 libzmq-mt-*.dll,另一个是 libsodium.dll,把这两个都放到 zmq 目录下即可。

完整脚本

@echo off

set workingDir=%~dp0\..
set pywinDir=%workingDir%\pywin
set binDir=%pywinDir%\Library\bin
set zmqDir=%pywinDir%\Lib\site-packages\zmq\backend\cython

echo "creating conda..."
set condaRoot=E:\anaconda3
call %condaRoot%\Scripts\activate.bat %root%
call conda create -p %pywinDir% -c ampelproject python paramiko zerorpc natsort

echo "copy dll..."
:: necessary for zmq to work properly
xcopy "%binDir%\libzmq-mt-*.dll" "%zmqDir%\" /Y
xcopy "%binDir%\libsodium.dll" "%zmqDir%\" /Y

这里利用 xcopy 把两个 dll 复制到 zmq 的目录。libzmq 这里使用通配符以避免硬编码版本号。

参考

  • Failed to install Jupyter with an error #10082
  • https://stackoverflow.com/questions/44357025/jupyter-notebook-error

你可能感兴趣的:(Python)