GVKun编程网logo

将RAM的使用限制为python程序(将ram作为写入缓存)

20

这篇文章主要围绕将RAM的使用限制为python程序和将ram作为写入缓存展开,旨在为您提供一份详细的参考资料。我们将全面介绍将RAM的使用限制为python程序的优缺点,解答将ram作为写入缓存的相

这篇文章主要围绕将RAM的使用限制为python程序将ram作为写入缓存展开,旨在为您提供一份详细的参考资料。我们将全面介绍将RAM的使用限制为python程序的优缺点,解答将ram作为写入缓存的相关问题,同时也会为您带来Laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。、Linux系统中python默认版本为python2.7,修改为python3 项目上传码云、Perl为Python程序员、Python 中关于Random的使用方法的实用方法。

本文目录一览:

将RAM的使用限制为python程序(将ram作为写入缓存)

将RAM的使用限制为python程序(将ram作为写入缓存)

我试图将Python程序的RAM使用量限制为一半,以便在使用所有RAM时都不会完全冻结,为此,我正在使用以下代码,该代码无法正常工作,并且笔记本电脑仍在冻结:

import sysimport resourcedef memory_limit():    rsrc = resource.RLIMIT_DATA    soft, hard = resource.getrlimit(rsrc)    soft /= 2    resource.setrlimit(rsrc, (soft, hard))if __name__ == ''__main__'':    memory_limit() # Limitates maximun memory usage to half    try:        main()    except MemoryError:        sys.stderr.write(''MAXIMUM MEMORY EXCEEDED'')        sys.exit(-1)

我正在使用从该main函数调用的其他函数。

我究竟做错了什么?

提前致谢。

PD:我已经搜索了一下,找到了我输入的代码,但是仍然无法正常工作…

答案1

小编典典

好的,所以我进行了一些研究,找到了一个从Linux系统获取内存的函数:在Python中确定可用RAM,然后我对其进行了一些修改,以获取可用内存并将最大可用内存设置为一半。

码:

def memory_limit():    soft, hard = resource.getrlimit(resource.RLIMIT_AS)    resource.setrlimit(resource.RLIMIT_AS, (get_memory() * 1024 / 2, hard))def get_memory():    with open(''/proc/meminfo'', ''r'') as mem:        free_memory = 0        for i in mem:            sline = i.split()            if str(sline[0]) in (''MemFree:'', ''Buffers:'', ''Cached:''):                free_memory += int(sline[1])    return free_memoryif __name__ == ''__main__'':    memory_limit() # Limitates maximun memory usage to half    try:        main()    except MemoryError:        sys.stderr.write(''\n\nERROR: Memory Exception\n'')        sys.exit(1)

将其设置为半该生产线是resource.setrlimit(resource.RLIMIT_AS, (get_memory() * 1024 / 2,hard))在那里get_memory() * 1024 / 2设置它的一半(它以字节为单位)。

希望这可以在将来帮助其他人!=)

Laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。

Laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。

laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。

GitHub 存储库:https://github.com/nabilhassen/laravel-usage-limiter

描述

一个 Laravel 包,用于跟踪、限制和约束用户、帐户或任何其他模型的使用限制。

使用此软件包,您将能够为用户设置限制,跟踪他们的使用情况,并在用户达到最大使用限制时对其进行限制。

示例用例:

  • 跟踪每秒、每分钟、每月的 API 使用情况
  • 跟踪资源创建,例如项目、团队、用户、产品
  • 跟踪存储等资源使用情况

以上就是Laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。的详细内容,更多请关注php中文网其它相关文章!

Linux系统中python默认版本为python2.7,修改为python3 项目上传码云

Linux系统中python默认版本为python2.7,修改为python3 项目上传码云

# 查询系统本系统中安装的python版本
ls -l /usr/bin/python*

 

 

1、在虚拟机上新建虚拟环境

# 系统中python默认版本为python2.7,可以将其修改为python3
# 第一步:先删除python
rm -rf /usr/bin/python
# 第二步:创建软链接
ln -s /usr/bin/python3 /usr/bin/python
# 第三步:查看python版本是否修改为python3
python -V
# 如果已经将python改为python3版本,可以直接创建虚拟环境
mkvirtualenv 虚拟环境名字
# 如果未修改python版本,则创建虚拟环境时需要指定python版本
mkvirtualenv 虚拟环境名字 -p python3

2、在pycharm中新建项目,取名、添加虚拟机上的虚拟环境

 

 

 

 

 

选择从码云上克隆到虚拟机中的项目路径:

修改Host和端口(如果在阿里云服务器上创建工程,Host设置为0.0.0.0):

设置本地与服务器代码自动同步:

由于没有使用django默认的admin用户认证系统,所以会报错。

修改settings.py文件,将Host地址添加到ALLOWED_HOSTS列表中。如果为空,只能通过127.0.0.1或者localhost来访问服务器。

大功告成,配置成功!

 

 

其他配置

修改 settings 文件

1.配置模板文件

在项目根目录新建一个templates文件夹,用于存放模版文件。

TEMPLATES = [
    {
        ''BACKEND'': ''django.template.backends.django.DjangoTemplates'',
        ''DIRS'': [os.path.join(BASE_DIR, ''templates'')],
        ''APP_DIRS'': True,
        ''OPTIONS'': {
            ''context_processors'': [
                ''django.template.context_processors.debug'',
                ''django.template.context_processors.request'',
                ''django.contrib.auth.context_processors.auth'',
                ''django.contrib.messages.context_processors.messages'',
            ],
            ''builtins'': [''django.templatetags.static''],
        },
    },
]

2.配置mysql数据库

a.连接虚拟机中的mysql,使用root用户登录:

mysql -uroot -p

b.创建数据库

mysql> CREATE DATABASE mysite CHARSET=utf8;
Query OK, 0 rows affected (0.13 sec)

c.创建用户

mysql>create user xiaohong identified by ''xiaohong'';
Query OK, 0 rows affected (0.00 sec)

d.用户授权

mysql> grant all on django_pro.* to ''xiaohong''@''%''; 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.20 sec)

  

e.加载数据库配置

方法一:直接在settings.py文件中添加数据库配置信息。

DATABASES = {
    ''default'': {
        ''ENGINE'': ''django.db.backends.mysql'',   # 数据库引擎
        ''NAME'': ''mysite'',                       # 数据库名称
        ''USER'': ''xiaohong'',                      # 数据库登录用户名
        ''PASSWORD'': ''xiaohong'',                # 密码
        ''HOST'': ''192.168.216.137'',                # 数据库主机IP,如保持默认,则为127.0.0.1
        ''PORT'': 3306,                           # 数据库端口号,如保持默认,则为3306
    }
}

方法二:将数据库配置信息存到一个文件中,在settings.py文件中将其引入。(推荐)

新建数据库配置文件my.cnf(名字随意选择)

在settings.py文件中引入my.cnf文件

DATABASES = {
    # 方法二:
    ''default'': {
        ''ENGINE'': ''django.db.backends.mysql'',
        ''OPTIONS'': {
            ''read_default_file'': ''utils/dbs/my.cnf'',
        },
    }
}

⚠️mysql数据库配置完成之后,运行django程序会报如下错误,官方推荐安装mysqlclient 1.3.7以上版本,也可以安装pymysql,并且需要在settings.py文件所在包中的__init__.py中导入pymysql。

方法一:安装mysqlclient,进入到虚拟机执行如下命令:

pyvip@VIP:~$ sudo apt-get update    # 更新ubuntu包
pyvip@VIP:~$ sudo apt-get install default-libmysqlclient-dev    # 安装依赖
pyvip@VIP:~$ workon youkou_env   # 进入到虚拟环境
(youkou_env) pyvip@VIP:~$ pip install -i https://pypi.douban.com/simple mysqlclient

方法二:安装pymysql,并且需要在settings.py文件所在包中的__init__.py中导入pymysql

(youkou_env) pyvip@VIP:~$ pip install -i https://pypi.douban.com/simple pymysql

3.配置redis缓存

用于存放用户session信息、短信验证码以及图片验证码信息等。

# 在虚拟机中安装django-redis
pip install -i https://pypi.douban.com/simple django-redis
# 在settings.py文件中指定redis配置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}

4.配置日志器

用于记录系统运行过程中的各种日志信息。

在项目根目录中创建一个logs文件夹,用于存放日志文件

# 在setting.py文件中加入如下配置:
# 配置日志器,记录网站的日志信息
LOGGING = {
    # 版本
    ''version'': 1,
    # 是否禁用已存在的日志器
    ''disable_existing_loggers'': False,
    ''formatters'': {
        ''verbose'': {
            ''format'': ''%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s''
        },
        ''simple'': {
            ''format'': ''%(levelname)s %(module)s %(lineno)d %(message)s''
        },
    },
    ''filters'': {
        ''require_debug_true'': {
            ''()'': ''django.utils.log.RequireDebugTrue'',
        },
    },
    ''handlers'': {
        ''console'': {
            ''level'': ''DEBUG'',
            ''filters'': [''require_debug_true''],
            ''class'': ''logging.StreamHandler'',
            ''formatter'': ''simple''
        },
        ''file'': {
            ''level'': ''INFO'',
            ''class'': ''logging.handlers.RotatingFileHandler'',
            ''filename'': os.path.join(BASE_DIR, "logs/xiaohong.log"),  # 日志文件的位置
            ''maxBytes'': 300 * 1024 * 1024,
            ''backupCount'': 10,
            ''formatter'': ''verbose''
        },
    },
    ''loggers'': {
        ''django'': {  # 定义了一个名为django的日志器
            ''handlers'': [''console'', ''file''],
            ''propagate'': True,
            ''level'': ''INFO'',  # 日志器接收的最低日志级别
        },
    }
}

5.时区配置

# 修改语言
LANGUAGE_CODE = ''zh-hans''
# 修改时区
TIME_ZONE = ''Asia/Shanghai''

USE_I18N = True

USE_L10N = True
# utc 时间
USE_TZ = True

6.修改静态文件配置

在项目根目录中创建一个static目录,用于存放静态文件(css、js、image、font等)

STATIC_URL = ''/static/''

STATICFILES_DIRS = [    os.path.join(BASE_DIR, ''static''), # 用于存放静态文件]

7.创建应用

a.本项目主要由4个模块组成,分别为新闻文章模块、课程视频播放模块、文档下载模块、用户管理模块等。在项目根目录下创建一个apps目录用于存放各个子应用。

# 在虚拟机中,cd进入apps
cd apps
python ../manage.py startapp news
python ../manage.py startapp course
python ../manage.py startapp doc
python ../manage.py startapp users

b.在settings.py文件中,加入如下配置

import sys

# 创建应用之后,把apps目录加入到sys.path中
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, ''apps''))

c.分别在apps文件夹和项目根目录文件夹上右击,加入到Sources Root根中,优化导入路径。

d.将应用加入到INSTALLED_APPS列表中

INSTALLED_APPS = [
    # ...
    
    ''users'',  # 将应用加入到INSTALLED_APPS列表中
    ''course'',
    ''doc'',
    ''news'',
]

将项目推送到码云

  • 在虚拟机中配置代码推送人身份信息(填写自己的名字和邮箱地址)

# 填写你的用户名
git config --global user.name "xiaoming"
# 填写你的邮箱地址
git config --global user.email "xiaoming@admin.com"

将代码推送至本地仓库(虚拟机中)

# 工作区添加到暂存区
git add .
# 暂存区提交到仓库区,-m为添加注释信息
git commit -m "项目初始化,完成settings中数据库、模板、时区、静态目录指定等。"

将代码推送至远程仓库(码云上)

# 将代码推送到远程仓库
git push

码云中就出现了,你的本次写的代码。

 

Perl为Python程序员

Perl为Python程序员

我知道Python(和一些其他语言),我认为学习Perl可能是很好的,即使大多数人都在做这件事情就是 the other way around。

我的主要关注不在于语言本身(我认为这一点总是很容易),而是关于学习“与…”(与Pythonic对比)的做事方式;因为我不认为如果我最终在Perl中编程Python,那将是值得的。

所以我的问题基本上是两个:

>有没有很多问题/应用领域,实际上更方便使用Perl而不是Python?
>如果第一个问题是积极的,在哪里可以找到一个入门的好地方,并学习不针对初学者的最佳做法?

解决方法

Perl更方便的一个领域是将其用于一个内存。 Python可以用来生产一个内存,但往往是“笨重”(或丑陋的)。请注意,Perl以其“简洁”或“简明扼要”着称,通常以牺牲可读性为代价。所以来自Python,你必须学会​​习惯。

另一个领域是Perl在CPAN中的大量模块。相当于Pypi,但它的模块不如CPAN那么多。

说,都做类似的事情,都有自己的优点。

至于你的第二个问题,你可以看看Perl documentation.我发现它非常有用。特别是阅读Perl FAQ.如果我想了解Perl,他们是自己最好的资源。

Python 中关于Random的使用方法

Python 中关于Random的使用方法

Random 在 Python 中的使用方法:

1.random.random():

会随机生成0-1之间的小数

例如:

 

2.random.uniform(min,max):

会随机生成 min - max 之间的小数,其中min 和 max 的位置可以互换而不会报错

 

3.random.randint(min,max):

 随机生成 min - max 之间的整数,如果min > max 会报错

 

错误:

 

4.random.choice(元祖/列表/range()/字符串):

 会从给定的元祖/列表/range()/字符串 中随机挑选出一个元素:(由于该操作不会对给定对象中的元素进行修改,所以对象类型可以是不可变类型,例如元祖和字符串):

 

 

 

 

 

5.random.randrange(min,max,tap_num):

 会在 min - max 之间随机产生一个数,其中以 tap_num作为选取数字的间隔:(这样可以选取某一范围内的奇数和偶数):

 

6.random.sample(元祖/列表/字符串/range,num):

 会从给定对象的所有元素中随机选取num个元素:

 

7.random.shuffle(list(可变变量)):

 shuffle:“洗牌”:

会对给定参数对象的所有元素的位置进行随机变动,就像洗牌一样:

 

由于shuffle会改变对象的值,所以对象的类型只能是可变类型,像元祖和字符串类型的变量就不能对其进行shuffle操作,否则会报错:

 

我们今天的关于将RAM的使用限制为python程序将ram作为写入缓存的分享已经告一段落,感谢您的关注,如果您想了解更多关于Laravel 使用限制器包简介:跟踪和限制用户或帐户的使用限制。、Linux系统中python默认版本为python2.7,修改为python3 项目上传码云、Perl为Python程序员、Python 中关于Random的使用方法的相关信息,请在本站查询。

本文标签: