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

conda-build测试失败:找不到pyarmor_runtime_006359模块求助

Conda-build测试失败:Pyarmor混淆包找不到pyarmor_runtime模块

问题分析

核心问题是conda-build测试阶段的Python路径识别差异——虽然安装后的文件结构完全正确,手动导入也能成功,但测试脚本执行时的环境路径没有正确包含pyarmor_runtime所在的子目录,导致导入失败。

解决方案

1. 明确配置包文件包含规则

在meta.yaml或pyproject.toml中强制指定pyarmor_runtime目录的文件必须被打包安装,避免conda-build遗漏子模块文件:

  • 修改meta.yaml:在build区块添加include_files规则
    build:
      number: 0
      script: "{{ PYTHON }} -m pip install . -vv"
      include_files:
        - my_project/pyarmor_runtime_006359/**
    
  • 修改pyproject.toml:用setuptools的package-data配置包含子目录文件
    [tool.setuptools.package-data]
    "my_project" = ["pyarmor_runtime_006359/*"]
    

2. 调整__init__.py的导入逻辑

在my_project/__init__.py开头添加路径调整代码,确保Python能找到同级的pyarmor_runtime目录:

import os
import sys
# 将当前包目录添加到Python路径最前面
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# 再执行原导入语句
from pyarmor_runtime_006359 import __pyarmor__

或者直接使用相对导入更稳妥:

from .pyarmor_runtime_006359 import __pyarmor__

3. 修正测试脚本的路径设置

如果测试脚本是自定义的,确保测试时能正确定位到安装后的包路径:

import sys
from pathlib import Path
# 将site-packages下的my_project目录添加到路径
sys.path.append(str(Path(sys.prefix) / "lib" / "python3.12" / "site-packages" / "my_project"))

4. 重新验证Pyarmor混淆过程

如果以上方法无效,重新执行混淆命令时明确指定包结构,确保运行时目录与主包正确关联:

pyarmor obfuscate --package my_project my_project/__init__.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:41:02