在利用 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 这里使用通配符以避免硬编码版本号。