折腾了大半天,终于基本搞定(目前没出什么问题)
windows本安装MITIE,之前在linux上一个pip install搞定的事,在windows上搞了好久,网上很多帖子写了一些方法,大家可以参考:
https://blog.csdn.net/liu765023051/article/details/83107254
https://www.kancloud.cn/ztl_ggg/java/895532
https://blog.csdn.net/wang_kill/article/details/88797418
https://blog.csdn.net/qq_42142152/article/details/82962914
如果上述还不能解决你的问题,可以参考下我的
(1)依赖组件
Visual Studio我没有安装,安装的是Visual C++ Build Tools,之前搜到的某个帖子写的,可以不装Visual Studio,但是这个Visual C++ Build Tools其实也不小,安完3G+。
cmake要装,MITIE的setup.py文件里需要验证cmake并使用。官网https://cmake.org/download/有自动化安装包,或者自己下zip包配下环境变量即可,参考上面的帖子。
boost我没装,不知道为什么也能用,可能以后会遇到问题吧,有待观察。
(2)遇到的报错
Traceback (most recent call last):
File "D:/WorkProject/MITIE/test.py", line 4, in <module>
out = subprocess.check_output(['cmake', '--version'])
File "D:\software\Anaconda3\envs\env_rasa\lib\subprocess.py", line 395, in check_output
**kwargs).stdout
File "D:\software\Anaconda3\envs\env_rasa\lib\subprocess.py", line 472, in run
with Popen(*popenargs, **kwargs) as process:
File "D:\software\Anaconda3\envs\env_rasa\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "D:\software\Anaconda3\envs\env_rasa\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
和
windows subprocess.check_output returned non-zero exit status 1
看了下源码https://github.com/mit-nlp/MITIE,其实都是一回事,安装MITIE时,会在当前环境下执行windows的cmd命令(cmake相关),命令结果返回值是1(执行异常)
如:
subprocess.check_call(['cmake', '..', '-A', 'x64'])
开始时候按照网上说的将subprocess.py中的Popen类初始化方法中的shell参数默认值改为True,这个参数如果是False,程序会将上面输入的字符串当做文件来读取命令再执行(网上查的,没有验证),但是改完依旧报错。。。
def __init__(self, args, bufsize=-1, executable=None,
stdin=None, stdout=None, stderr=None,
preexec_fn=None, close_fds=True,
shell=False, cwd=None, env=None, universal_newlines=None,
startupinfo=None, creationflags=0,
restore_signals=True, start_new_session=False,
pass_fds=(), *, encoding=None, errors=None, text=None):
"""Create new Popen instance."""
我的cmake环境变量配置是对的,cmd命令窗口可以执行cmake相关指令,但是发现在pycharm的terminal里面无法运行cmake指令,故猜测可能是pycharm没有读取到windows环境变量。
两条路 :
1 改pycharm配置
2 在cmd窗口安装
选了方案2
首先,通过git下载了MITIE源码到本地
然后,在cmd命令行启动本地虚拟环境(我用的conda)
最后,在cmd窗口执行python setup.py build+install 搞定
注意,安装完cmake并配置完环境变量再打开cmd,不然可能读不到环境变量。
回想最开始也是通过cmd窗口pip安装MITIE,但是卡在setup.py下面的代码里
out = subprocess.check_output(['cmake', '--version'])
这句是要检查cmake版本,这个check_output无论如何都执行不正确,导致没法继续安装,后没办法在源码文件里将这一步注掉了(前提是确定自己的cmake版本确实满足要求>= 3.1.0)
总之安装上了,使用时会报tensorflow部分的Could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found,是不过暂时不影响使用。
关于pycharm相关配置应该也容易解决,不过折腾了大半天,后续有时间再研究下。