pyhanlp python3.9及以上安装

Python3.9及以上版本安装Pyhanlp

Pyhanlp的setup.py里面代码会制止我们在高版本上安装。

setup.py

如图,源码是有这一段强制不在Python3.9以上安装,一般来说,既然我们已经安装不了了,那么把代码改掉会有什么代价呢?

Jpype1

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

用于退出虚拟环境。

posted @ 2022-06-30 13:21  dlinuigh  阅读(1825)  评论(0编辑  收藏  举报