在Vim中安装coc.nvim插件的扩展coc-pyright出现了code 1失败,无法正常安装,尝试了多种办法都没用,最后尝试使用管理员权限解决问题
通过管理员模式打开vim的编辑界面
sudo vim
之后在Vim窗口输入指令
:CocInstall coc-pyright
这样就正常安装了
在Vim中安装coc.nvim插件的扩展coc-pyright出现了code 1失败,无法正常安装,尝试了多种办法都没用,最后尝试使用管理员权限解决问题
通过管理员模式打开vim的编辑界面
sudo vim
之后在Vim窗口输入指令
:CocInstall coc-pyright
这样就正常安装了
作为一名专业的Python程序员,你可能经常需要管理自己的Python包仓库。而pypiserver就是一个简单易用的工具,可以让你快速搭建自己的Python包仓库。但是,为了保护你的Python包仓库的安全,你可能需要在pypiserver中启用密钥保护。本文将为你介绍如何在pypiserver中启用密钥保护。
一、密码文件
pypiserver默认不支持密钥,但是可以通过设置密码文件来限制访问pypiserver。在pypiserver的根目录下创建一个名为.htaccess的文件,并在其中添加以下内容:
username:password
其中,username和password分别是你要设置的用户名和密码。请注意,密码需要使用htpasswd工具生成,否则会造成安全风险。htpasswd工具可以通过以下命令安装:
$ sudo apt-get install apache2-utils
使用htpasswd生成密码:
$ htpasswd -c .htpasswd username
输入密码后,将在当前目录下生成一个名为.htpasswd的文件,其中包含加密后的密码。你可以使用以下命令验证密码是否设置成功:
$ htpasswd -v .htpasswd username
二、HTTPS
HTTPS可以通过在pypiserver的配置文件中设置来启用。在pypiserver的根目录下创建一个名为config.py的文件,并在其中添加以下内容:
[server:main] use = egg:gunicorn host = 0.0.0.0 port = 80 certfile = /path/to/cert.pem keyfile = /path/to/key.pem
其中,certfile和keyfile分别是SSL证书和密钥文件的路径。你可以使用Let’s Encrypt等工具来生成证书和密钥文件。
请注意,启用HTTPS会增加服务器的安全性,但也会增加服务器的负担。如果你的服务器配置较低,可能会影响pypiserver的性能。
总结:
本文介绍了如何在pypiserver中启用密钥保护,包括密码文件和HTTPS加密通信。通过设置密码文件或启用HTTPS,可以提高你的Python包仓库的安全性,保护你的Python包不受非法访问。
在 Python 开发过程中,我们经常需要使用 pip
命令来安装各种依赖包。默认情况下,pip
会从公共 PyPI 服务器中下载相应的文件。但是,有时候我们需要使用私有 PyPI 服务器来管理和分发私有的 Python 包和依赖。这时候,我们可以使用 pip
配置文件来配置私有服务器的 URL。
使用 pip
配置文件来配置私有 PyPI 服务器的 URL,可以让我们在使用 pip
安装包和依赖时,自动判断要从哪个服务器下载相应的文件。下面是配置文件的步骤:
创建 ~/.pip
目录:
mkdir -p ~/.pip
创建 pip.conf
文件,并编辑文件:
touch ~/.pip/pip.conf nano ~/.pip/pip.conf
在 pip.conf
文件中添加以下内容:
[global] index-url = http://localhost:8080/simple/ #指定可信任的主机名,用于避免 SSL 证书验证失败的问题 trusted-host = localhost
这里的 index-url
参数指定了私有 PyPI 服务器的 URL,可以根据实际情况进行修改。
配置完成后,我们就可以在使用 pip
安装包和依赖时,从私有 PyPI 服务器中下载相应的文件。如果需要从公共 PyPI 服务器中下载,可以在 pip
命令中使用 -i
或 --index-url
参数指定相应的 URL。
除了配置私有 PyPI 服务器的 URL,我们还可以在 pip
配置文件中指定认证信息、缓存设置等。以下是一些常用的配置选项:
index-url
:指定 PyPI 服务器的 URL。trusted-host
:指定可信任的主机名,用于避免 SSL 证书验证失败的问题。proxy
:指定 HTTP/HTTPS 代理服务器的 URL。timeout
:指定连接超时的时间,单位为秒。no-cache-dir
:禁用缓存,每次都从服务器下载最新的包和依赖。可以在 pip
官方文档中查看完整的配置选项。
PyPI是Python Package Index的缩写,它是一个公共的包管理器,包含了大量的Python库和依赖。然而,在某些情况下,开发团队可能需要使用私有的包管理器。这时候,就需要使用PyPI私有服务器。
PyPI 私有服务器的作用是在企业内部建立一个私有的Python包仓库,供内部开发人员使用。通过PyPI私有服务器,开发团队可以方便地维护和管理项目中的包和依赖。此外,PyPI私有服务器还可以提高安全性,保护企业的代码和知识产权,防止恶意攻击和泄漏。
PyPI 私有服务器的优点包括:
然而,PyPI私有服务器也有一些限制,包括:
常见的 PyPI 私有服务器解决方案包括:
这些解决方案都有其优点和限制,企业或组织可以根据自己的需求和预算选择合适的解决方案。
结论:
在 Python 开发过程中,PyPI 私有服务器是一个重要的工具,可以帮助企业或组织更好地管理自己的 Python 项目。通过使用 PyPI 私有服务器,企业或组织可以实现安全、私密、稳定和定制化的 Python 包和依赖项的管理。在选择 PyPI 私有服务器解决方案时,企业或组织应该根据自己的需求和预算选择合适的解决方案。
这次的断网问题可能比较特殊,记录一下对应的处理方案。
服务器Ubuntu 18.04安装Python 3的时候,发现有多个版本的Python被安装了,这时候为了做到具体的控制,所以将Python全删除了一遍,也好像因此造成了系统网络的问题。
重启后的第一结果是ssh连接超时,由于服务器使用了阿里云ECS,可以通过“控制台”远程连接服务器,这个连接可以理解为本地操作。
连上之后,有一些坑,还卸载了openssh-server
,在重新安装openssh-server
的时候,发现一直无法连上软件服务器,尝试用ifconfig
检查联网,才发现网卡消失,没有任何的连接。
检查/etc/network/interfaces
,发现配置都没有问题,通过ifconfig -a
,能找到网卡eth0,这个时候使用dhclient eth0
,来获取ip地址,解决联网问题。
但是重启服务器后,发现又无法联网,服务器不可能每次重启后都要手动的获取一下IP,这个问题需要解决一下,之前尝试通过ifup eth0
启用网卡的时候发现ifup没有安装,最后就通过sudo apt-get install ifupdown
解决了这个问题,蛮神奇的,大概是什么依赖包因为安装了这个之后也一起安装了吧。
所以本文就对这次断网处理做个记录。
使用MongoDB好几年,服务器版本自最后一次升级一直停留在3.4版本。MongoDB版本已经出了3.6和4.0两个版本。这次服务器版本升级到Ubuntu 18.04,顺便就把MongDB也升级一下。
MongoDB从3.4到3.6到4.0的升级,是一个逐步完成的过程,需要每个版本的服务器程序运行做调整。下面给出的是一个逐步升级的方案,已经对应的阿里云源,方便国内使用
(更多…)本次服务器维护,将原来的一堆杂乱的资料重新整理了。但是出了些差错,之前的博客图片在备份的时候没有保存成功,好在数据库全保存了,不然文字图片都没了那是灾难。
本次维护会影响到之前推出的一些关键词工具的使用,会尽快恢复使用的,请随时关注博客的更新。
在Mongodb中,如果想检查一个文档是否存在,最高效的方法应该是使用find()+count(),而不是使用find_one()。
一般来说,我们第一感觉会认为find_one()最高效,但是find_one()每次查找会同时读取文档,这相比find()返回一个cursor,会慢不少。
David Mytton,在《Checking if a document exists – MongoDB slow findOne vs find》 (2013),指出了这个区别。
在我目前使用的pymongo 3.7.2中,无法像其文中所述,使用limit()判断返回的cursor是否存在,而需要count()判断返回的cursor是否包含文档。
因此,使用
db.collection.find({"username":"abc"}).count() db.collection.find({"username":{"$in":usernames}).count() # 如果usernames是一个列表
来替代:
db.collection.find_one({_id: "myId"}, {_id: 1})
用CNN做文本分类有一段时间了,关于训练数据不平衡的问题,我一直使用一个简单的方法,复制样本数据少的类别,在训练的时候,每个mini-batch都能相对均匀的抓取每个类别的信息。
今天一个偶然,去查了查CNN数据不均衡的问题,发现网上资料不少,主要围绕过采样的方法,看了下定义,原来就是我的这个操作方式,这种方式不适合在SVM里面使用,因为数据表现的信息恒定不变,可是为啥在CNN里面效果好呢?复制样本并没有添加任何的信息。只是为了让mini-batch更均衡的使用每个类别数据。
跟着疑问,追逐mini-batch的痕迹,在梯度下降的时候,由于计算量和机器的限制,无法一次性读入所有数据,而1个样本1个样本的处理,根本无法收敛,采用mini-batch,可以找到合适的下降步长和方向,快速收敛。同时,我们在使用mini-batch的时候,是用的sample batch,每一个batch,随机从总训练样本中抽取,这样每一个batch在梯度下降中的表现就不一样了。说到这,应该能联系上过采样在CNN中的好处了,一方面较为均匀的分配给每一个batch每一类别的信息,另一方面,增加了mini-batch的多样性,梯度下降能更好的找到最优或局部最优解。
当然,最好的方式还是增加信息量,即样本多样性,让模型的准确率更高,这个就是数据量大的说法了。
下次有机会做个对比实验。