困扰了半天终于理顺了
之所以找不到对应的模块 是因为os.system() 使用的是当前系统的搜索路径 如虚拟环境中有 真实环境中没有 或者是发给其他用户使用 均会提示对应错误
解决的根源 在于给系统增加上对应的搜索路径 即 sys.path.insert(0, path) 或 sys.path.append()
参考代码如下
# 在生产新文件的最上方 导入对应模块
# 生成文件
text_content = """#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
# cython: language_level=3
import sys, os
print(r'{}')
sys.path.insert(0, r'{}')
print(sys.path)
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = '{}_cavpyd',
ext_modules = cythonize("{}"))
""".format(self.curworkpath, self.curworkpath,
os.path.splitext(file_name)[0], file_name)
covfilename = os.path.splitext(file_name)[0]
covfilepath = self.dirpath + '/' + covfilename + '_covtext.py'
with open (covfilepath, 'w+') as f:
f.write(text_content)