python--requirements.txt的创建及使用

python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

1.在虚拟环境中使用pip生成:

pip freeze >requirements.txt

安装或升级包后,最好更新这个文件。

2.当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:

pip install -r requirements.txt

python安装whl包时出现的问题解决is not a supported wheel on this platform

1.问题

psutil-5.7.0-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.

2.查找问题

# 进入python,输入以下代码,查看pip支持的类型
import pip._internal
print(pip._internal.pep425tags.get_supported())
# 结果:
[('cp38', 'cp38m', 'win32'), ('cp38', 'none', 'win32'), ('py3', 'none', 'win32'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'non
e', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

3.解决

修改whl包名为支持的类型,如:
psutil-5.7.0-cp38-none-any.whl

4.再次安装

(venv) D:\project_python\it>pip install psutil-5.7.0-cp38-none-any.whl
Processing d:\project_python\it\psutil-5.7.0-cp38-none-any.whl
Installing collected packages: psutil
Successfully installed psutil-5.7.0

MongoDB如何开启权限认证

MongoDB默认是不开启权限认证的,开启认证也很简单,在配置文件mongodb.conf里面加入auth = true 或者通过 --auth参数启动

一、具体操作步骤

1.首先开启mongod服务

mongod --port 27017 --dbpath /data/db1

2.连接数据库

mongo --port 27017

3.创建用户

use admin
db.createUser({user: "test", pwd: "123456", roles: [{role: "userAdminAnyDatabase", db: "admin"}] })

4.关闭mongod服务

use admin
db.shutdownServer()

5.这时重新启动mongod服务,添加 --auth 开启权限认证。

mongod --port 27017 --dbpath /data/db1 --auth
  • 如果是用配置文件启动的,则在配置中添加:
security:
  authorization: enabled

6.用户登录数据库

  • 方式一 :在连接服务器的同时进行用户认证
mongo --port 27017 -u "test" -p "123456" --authenticationDatabase "admin"
  • 方式二 :先连接服务器,然后在数据库内认证。
mongo --port 27017
use admin
db.auth("test","123456")

7.使用db.shutdownServer()报错的解决方法

  • 赋予hostManager权限:
db.grantRolesToUser( "admin" , [ { role: "hostManager", db: "admin" } ])

二、配置文件

  • 使用配置文件 启动 mongod -f ./mongodb/mongo.conf
# 数据库路径
dbpath=./mongodb/data
# 日志输出文件路径
logpath=./mongodb/logs/mongo.log
# 错误日志采用追加模式
logappend=true
# 启用日志文件,MongoDB的数据操作将会写入到journal文件夹的文件里
journal=true
# 安静输出,可以过滤掉一些无用的日志信息
quiet=true
# 启用验证
auth=true
# 守护进程
fork=true
# 端口号 默认为27017
port=27017

三、角色具体说明:

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • dbOwner:数据库拥有者,包含readWrite、dbAdmin、userAdmin
  • clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
  • readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
  • root:只在admin数据库中可用。超级账号,超级权限

MongoDB解决不能连接到服务器的错误

今天研究Mongodb第二次连接的时候报如下错误 :

MongoDB shell version: 2.4.9 
connecting to: test 
Mon Mar 3 23:45:09.491 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145 
exception: connect failed 

这是因为上次关闭Mongodb不当,数据文件还继续占用

以下是网上的解决方法, Mongodb解决不能连接到服务器的错误

  • 先看服务启动没有,如果没有启动服务先启动服务,如果服务已经启动了,
  • 那有可能是上次不正常关闭mongo,导致存放数据的文件被占用了,被锁住了。
只需将D:\software\mongodb-2.4.5\data中的mongod.lock文件删除掉。
重新启动服务即可。

MongoDB创建删除用户和修改密码

1.创建管理用户

db.createUser(
   {
     user: "accountUser",
     pwd: "password",
     roles: [ "readWrite", "dbAdmin" ]
   }
)

2.删除用户

db.dropUser("accuntUser")

3.修改用户密码

db.changeUserPassword("accuntUser","newPasswd")

4.启动数据库:

mongod --bind_ip localhost --port 27017 --dbpath /home/raid1/z_BAK/mongod_data/ --logpath=/var/log/mongod.log --fork