You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04安装pythonnet遇nuget/mono异常,求解决方案

解决Ubuntu 18.04下安装pythonnet时的nuget代理/URI错误问题

你遇到的Invalid URI: Invalid port specified错误,核心原因是Git全局代理设置干扰了nuget的网络请求——nuget会自动继承系统或Git的代理配置,但旧版本nuget对代理格式的兼容性较差,加上你之前设置的Git代理在nuget环境下解析出了问题。下面是几个针对性的解决办法,按优先级尝试:

方法1:临时取消Git全局代理(最快速)

你之前通过git config --global http.proxy设置了全局代理,这会被nuget继承,但可能导致端口解析错误。先临时取消这个设置:

git config --global --unset http.proxy

然后重新运行pythonnet的安装命令:

/usr/bin/python3 -m pip install -U pythonnet --user

如果你的网络环境不需要代理就能访问nuget.org,这个方法应该能直接解决问题。

方法2:直接给nuget配置代理(需保留代理时用)

如果必须用代理才能访问外部网络,不要依赖Git的代理设置,而是直接给nuget单独配置:

  1. 进入你克隆的pythonnet仓库目录
  2. 运行以下命令设置nuget的代理(替换成你的真实代理地址和端口):
mono tools/nuget/nuget.exe config -set http_proxy=http://my.proxy.address:port
mono tools/nuget/nuget.exe config -set https_proxy=http://my.proxy.address:port
  1. 再尝试运行nuget更新命令:
mono tools/nuget/nuget.exe update -self

完成后回到仓库根目录,重新执行pythonnet的安装流程。

方法3:手动替换最新版nuget.exe(解决旧版本兼容性问题)

旧版本nuget对代理的支持确实存在bug,你找到的issue里提到的Windows场景其实和Linux下的底层问题一致,可以手动替换成最新版:

  1. 下载适配Mono的最新版nuget.exe
  2. 替换pythonnet仓库中tools/nuget/目录下的旧nuget.exe文件
  3. 再次运行mono tools/nuget/nuget.exe update -self,此时应该能正常完成更新
  4. 继续执行pip install命令安装pythonnet

方法4:跳过nuget自我更新(绕过问题)

如果上面的方法都不行,可以强制pip在安装时跳过nuget的自我更新步骤,使用--no-build-isolation参数:

/usr/bin/python3 -m pip install -U pythonnet --user --no-build-isolation

这个参数会让pip使用系统已安装的依赖(你已经装了clang、mono),避免在构建过程中自动运行nuget更新。

额外注意点

  • 确保你的代理地址和端口没有拼写错误,比如端口是纯数字,没有多余的符号或空格
  • Ubuntu 18.04上的Mono 5.16版本相对较旧,如果后续还有其他问题,可以考虑升级到Mono 6.x版本

内容的提问来源于stack exchange,提问作者Data Mastery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 15:32:32