pyhanlp python3.9及以上安装
Python3.9及以上版本安装Pyhanlp
Pyhanlp的setup.py里面代码会制止我们在高版本上安装。
如图,源码是有这一段强制不在Python3.9
以上安装,一般来说,既然我们已经安装不了了,那么把代码改掉会有什么代价呢?
Jpype1
这个库的版本要用不会出错的,什么意思呢,这里你可以先不改,但是后面安装出了错,一般而言是:
'array.array' object has no attribute 'fromstring'
这样的错误那么很有可能是上面的Jpype1
版本太低了,此时可以独立安装最新的而不是旧的jpype1==0.7.0
。只需要更改需要的版本为你安装的版本即可进行编译。
简单编译Pyhanlp
python setup.py install
检查或安装依赖,安装Pyhanlp,如果运行没问题一般而言就是这样的输出:
Finished processing dependencies for pyhanlp==0.1.84
此时我们完成了安装。
此时如果你使用的是venv
环境,那么在lib\python%d\site-packages\
里面会生成*.egg
文件夹。
我切换到windows系统尝试安装相同的环境时,有一些目录环境与上面是不一样的,并且由于编译过程会使用c
环境,在Linux
使用gcc
编译并没有大的问题,我尝试直接在Windows
上使用虚拟环境,确实venv
模块会编写一个Activate.ps1
脚本,但是会因为找不到对应的python
可执行文件退出。这两个问题提醒你:可用的编译环境和重新建立虚拟环境是必要的。
python -m venv envir_name_you_like
envir_name_you_like\Scripts\activate
或者直接运行Activate.ps1
是可行的。有时候你对脚本进行了更改可能或产生签名的问题,当然了一般来说官方给的脚本运行是不会出现问题的。如果发生了,要注意在管理员模式下启用权限。可以在这个网页上看到详细的描述。提取重要的内容即是:
策略代表什么意义,
组策略 执行策略 允许所有脚本 Unrestricted 允许本地脚本和远程签名的脚本 RemoteSigned 仅允许签名脚本 AllSigned Get-ExecutionPolicy
这将会告诉你当前用户的脚本执行限制策略。
Get-ExecutionPolicy -List
这将会告诉你能够影响你的策略。按照优先级排序,即下面的策略会覆盖上面的。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
为当前用户设置策略
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
将本地机器的策略删除
deactivate
用于退出虚拟环境。