Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

win10安装pyltp报错 #125

Closed
RaoChunzi opened this issue Dec 22, 2017 · 27 comments
Closed

win10安装pyltp报错 #125

RaoChunzi opened this issue Dec 22, 2017 · 27 comments
Labels

Comments

@RaoChunzi
Copy link

我在win10下安装pyltp,python是3.6,没有安装visual studio,只安装了Visual C++ 2015 Build Tools。pip install pyltp安装时报错:error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit
status 2
求解决方法!

@MagiaSN
Copy link

MagiaSN commented Dec 27, 2017

我也遇到了同样的问题,pyltp更新到0.2.0后,在windows上使用pip安装时出现了以下错误:

aligned-mem-pool.cc
    ltp/thirdparty/dynet/dynet/mem.h(13) : error C2059: syntax error : ';'
    ltp/thirdparty/dynet/dynet/mem.h(13) : error C2238: unexpected token(s) preceding ';'
    ltp/thirdparty/dynet/dynet/mem.h(14) : error C2059: syntax error : ';'
    ltp/thirdparty/dynet/dynet/mem.h(14) : error C2238: unexpected token(s) preceding ';'
    ltp/thirdparty/dynet/dynet/globals.h(11) : error C2039: 'mt19937' : is not a member of 'std'
    ltp/thirdparty/dynet/dynet/globals.h(11) : error C2143: syntax error : missing ';' before '*'
    ltp/thirdparty/dynet/dynet/globals.h(11) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ltp/thirdparty/dynet/dynet/globals.h(11) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(8) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(8) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(30) : error C2143: syntax error : missing ',' before ':'
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(30) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(30) : error C2143: syntax error : missing ';' before '{'
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(30) : error C2541: 'delete' : cannot delete objects that are not pointers
    ltp\thirdparty\dynet\dynet\aligned-mem-pool.cc(31) : fatal error C1903: unable to recover from previous error(s); stopping compilation
    error: command 'C:\\Users\...\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

pyltp 0.1.9.1无此问题,可以使用pip install pyltp==0.1.9.1正常安装(需要VCForPython27)

@RaoChunzi
Copy link
Author

多谢楼上

@eli95
Copy link

eli95 commented Jan 4, 2018

1 准备工作
1.1 系统环境
windows server 2008,Python3.2(32位版),开发工具为HBuilder【你可能也知道HBuilder适合做Web开发,但是为HBuilder安装pydev插件后,也可编写Python程序,由于我平时还喜欢写些php网页,刚好一个软件都能满足我】

1.2 安装CMAKE
LTP是用c++写的,pyltp也是基于它封装而成的,所以需要安装camke. 我安装的是二进制版的 cmake-3.2.2-win32-x86.exe 安装后不用配置环境变量。

1.3 安装VS2008
在pyltp的安装过程中 需要调用 cl.exe 完成源码的编译。安装的是微软官方的vs2008 express 版。这个安装好后,需要将cl.exe 的路径添加到环境变量PATH中去(如我的是C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\cl.exe)

2 pyltp安装步骤
2.1 下载pyltp并解压到任意位置
下载页面:https://github.com/hit-scir/pyltp

2.2 下载ltp并解压到任意位置
下载页面:https://github.com/hit-scir/ltp

2.3 将解压后的ltp文件夹命名为ltp,整体复制到pyltp中。
也就是将ltp所有内容作为一个文件夹放到pyltp中。解压pyltp后所得到的文件夹中已经有一个名为ltp的空文件夹,把它替换或覆盖即可。

2.4 安装pyltp
我是在cmd中通过 python setup.py install 命令实现安装的,过程较慢,耐心等待,后期会出现大量的warning信息,不要在意。安装程序执行完毕后,在Python中执行import pyltp 不报错,说明安装成功了。

到这里 核心程序的部署已经完成,而且官方的样例已经可以顺利执行了。我把这个文件夹部署到自己的Python项目中,pyltp自带的这些模型文件(在ltp_data文件夹中)仅为测试之用,正式的model文件还需要从网上下载。

2.5 下载并部署模型文件
完整的模型文件下载地址: http://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569,我选择的是目前最新的3.2.0版本(ltp-data-v3.2.0.zip),解压后得到一个大于1G的文件夹,确保此文件夹名称为ltp_data。至于这个文件夹要放到哪里,经过分析官方例子,发现它的位置任意,但在Python程序中一定要指明这个路径。于是我把它放到我的项目的根目录下,并确保与存放Python源程序的src目录并列,这样官方的例子不用做修改就可加载这个文件夹了。

@wh93hz
Copy link

wh93hz commented Jan 7, 2018

python3.6 ,安装了VCForPython27,pip install pyltp==0.1.9.1仍然提示 error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2
请问怎么解决啊?

@chenzk1993
Copy link

你应该下个这个编译工具,链接:http://landinghub.visualstudio.com/visual-cpp-build-tools

@bill-kong
Copy link

Win10(x64), python 3.6, 已安装Visual C++ Build Tool 2015, 成功安装0.1.9.1。
solved the problem with 0.1.9.1!

@bill-kong
Copy link

bill-kong commented Jan 12, 2018

Win10(x64), python 3.6, 尝试用PyCharm或者pip install升级package,仍出现错误,错误代码如下:
``

请各位参考!因为我并不懂c++,点开源码看也并看不懂怎么解决。

ltp/src/srl/include/extractor/ConverterFileReader.h(21): note: see reference to class template instantiation 'extractor::Converter<extractor::DataFileName,extractor::DataFileContext>' being compiled
c:\users\asus\appdata\local\temp\pycharm-packaging\pyltp\ltp\src\srl\include\extractor\Converter.h(32): error C3861: 'convert': identifier not found
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

补充,搜索了下发现,是不是Convertor.h 的 run 函数定义在 convert 之前,导致报错?供参考!

@JinkelaCrops
Copy link

可以尝试下从源码安装。同win10, python3.6, Visual C++ 2015 Build Tools, pip安装失败,从源码安装成功。

@bill-kong
Copy link

bill-kong commented Jan 12, 2018

@JinkelaCrops 源码安装似乎也会报错,只是错的文件不一样了,很绝望。。。

src\pyltp.cpp(17): fatal error C1083: Cannot open include file: 'SplitSentence.h': No such file or directory
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2

@JinkelaCrops
Copy link

@bill-kong 检查下ltp文件夹下是否有代码,需要clone ltp代码到ltp文件夹下

git submodule init
git submodule update

@bill-kong
Copy link

bill-kong commented Jan 12, 2018

@JinkelaCrops 多谢提醒,已将ltp-3.4.0-win-x64-Release.zip下的lib和bin都复制到ltp文件夹中了,重跑后依然出现一样的错误。


补充:后来将ltp源码中的src和thirdparty两个文件夹复制到ltp下,正常运行至之前提到的错误:

c:\users\asus\pyltp\ltp\src\srl\include\extractor\Converter.h(32): error C3861: 'convert': identifier not found
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2

Converter.pdf

@wh93hz
Copy link

wh93hz commented Jan 12, 2018

python2.7,VCForPython27,pip install pyltp==0.1.9.1,顺利安装

@yaleimeng
Copy link

请参考这篇博文里面提到的两个whl文件。
pyltp-0.2.1-cp35-cp35m-win_amd64.whl
pyltp-0.2.1-cp36-cp36m-win_amd64.whl
直接pip安装很方便。不过只有py3.5与3.6两个版本的,也够用了。

我试用官方示例能够运行,用到的模型当然要另外下载准备好。

@needsoft
Copy link

needsoft commented Mar 7, 2018

搞了两天,终于用源代码编译成功了,说一下我的做法,希望对遇到类似问题的朋友有用

  1. 编译之前,将ltp的源代码(注意不是pyltp)解压到 pyltp\ltp 空目录中

  2. 运行 python setup.py install 会遇到c1.exe 的错误,我向上找,有句说:
    pyltp\ltp\src\srl\include\extractor\Converter.h(32): error C3861: “convert”: 找不到标识符
    再继续往上找,找到:
    Converter.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
    于是我就把那个文件用notepad打开,用unicode另存一下。

  3. 重新运行 python setup.py install 就成功了。

@yaleimeng
Copy link

@needsoft 我遇到的问题也一样,还以为是代码语法问题。。但代码看着没问题,改了几处也没用。没想到是编码问题。
@HIT-SCIR 这应该视为bug,请作者将编码转换好。避免持续坑害pyltp的爱好者们:.)

@liu946
Copy link

liu946 commented Mar 8, 2018

已经收入此问题,会在下一个版本中更新。

@liu946 liu946 closed this as completed Mar 8, 2018
@EdwardChu1217
Copy link

我用的是python3.7,弄了好久,一直装不上。后来版本换成3.6的python,终于装好了。

@zhengcanlin
Copy link

我用的是python3.7,弄了好久,一直装不上。后来版本换成3.6的python,终于装好了。

兄弟,你是怎么安装的呀,我用3.6安装不了

@gphmath
Copy link

gphmath commented Jun 8, 2019

我用的是python3.7,弄了好久,一直装不上。后来版本换成3.6的python,终于装好了。

兄弟,你是怎么安装的呀,我用3.6安装不了

我记得我是用github上的某个回复里的whl文件安装成功的(可能就是这个页面,忘记了),pip安装我当时没有成功,windows 7+Python 3.6

@lvyilin
Copy link

lvyilin commented Jul 7, 2019

win10+conda 4.7.5+Python 3.7.3,修改两文件后编译成功:

  1. 去除pyltp\ltp\src\srl\include\extractor\Converter.h中的中文注释
  2. 参考 在Mac10.13.4 Python3.7.0下安装失败 #172 (comment)

@duxingmoyu
Copy link

请参考这篇博文里面提到的两个whl文件。
pyltp-0.2.1-cp35-cp35m-win_amd64.whl
pyltp-0.2.1-cp36-cp36m-win_amd64.whl
直接pip安装很方便。不过只有py3.5与3.6两个版本的,也够用了。

我试用官方示例能够运行,用到的模型当然要另外下载准备好。

有木有py3.7的版本啊,跪求

@JoanWu5
Copy link

JoanWu5 commented Jan 17, 2020

求py3.7 的wheel

@yaleimeng
Copy link

闲的没事用3.7干啥?3.6不香吗?还没发现什么库非要3.7以上吧?

@JoanWu5
Copy link

JoanWu5 commented Jan 17, 2020 via email

@chelly123
Copy link

闲的没事用3.7干啥?3.6不香吗?还没发现什么库非要3.7以上吧?

frida

@langerZeit
Copy link

我用的是python3.7,弄了好久,一直装不上。后来版本换成3.6的python,终于装好了。

python3.6已经没有了吧,官网都下载不到了,难怪我3.7就是装不上去!

@CodeAunt
Copy link

现在可以用较高版本的python用github主页上的方法编译了
用python 3.7 编译成功了
感谢重构工作!

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests