Переходим на сервер, авторизуемся под нужным пользователем. Активируем «переменную среду»:
cd env source web/bin/activate pip install ....
Программирование на Всем!
Переходим на сервер, авторизуемся под нужным пользователем. Активируем «переменную среду»:
cd env source web/bin/activate pip install ....
Создаем пакет стандартными способами xcode
Далее можно сохранить его в любой git и применять метки (tag):
git tag -a 1.0.0 -m "version 1.0.0"
git tag
1.0.0
git push origin --tags
В логах windows можно увидеть следующую ошибку:
Faulting application name: w3wp.exe, version: 10.0.14393.0, time stamp: 0x57899b8a Faulting module name: ntdll.dll, version: 10.0.14393.2969, time stamp: 0x5ccd148a Exception code: 0xc0000005 Fault offset: 0x0000000000065553 Faulting process id: 0x2694 Faulting application start time: 0x01d88ba20ec97214 Faulting application path: c:\windows\system32\inetsrv\w3wp.exe Faulting module path: C:\Windows\SYSTEM32\ntdll.dll Report Id: f0c1f728-42d5-446e-b599-6bc97223eb12 Faulting package full name: Faulting package-relative application ID:
Проблема заключалась в том, что в один момент времени процесс node.exe потребляет оперативной памяти больше 2Gb.
Читать далее «Особенности работы iisnode»Создаем сервис:
[Unit] Description=RPC сервис After=network-online.target [Service] User=www-data Restart=on-failure # тут указываем путь к серверному приложению WorkingDirectory=/var/www/rpc-release ExecStart=/usr/bin/node /var/www/rpc-release/bin/www conf=./release.conf StandardOutput=file:/var/log/rpc/rpc-dev.log StandardError=file:/var/log/rpc/rpc-dev-error.log [Install] WantedBy=multi-user.targetЧитать далее «Перенаправление логов в systemd»
Подробнее на официальном сайте: https://docs.locust.io/en/latest/quickstart.html
Создание простого теста:
from locust import HttpUser, task, between class Exists(HttpUser): wait_time = between(1, 5) @task(1) def auth(self): self.client.get("/exists")
Для проверки можно выполнить:
import requests as r base_url = 'http://localhost:5007/release' r.get(base_url + '/exists') # <Response [200]>Читать далее «Locust: нагрузочное тестирование»
ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN. For details see the broker logfile
Ошибка была в том, что был удален пользователь taiga. Чтобы исправить авторизоваться под taiga и выполнить:
sudo rabbitmqctl add_user taiga taiga sudo rabbitmqctl add_vhost taiga sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Создаем нового пользователя
sudo adduser jupiter sudo usermod -a -G www-data jupiter
Далее авторизуемся под новым пользователем:
sudo apt install python3-pip python3-dev sudo pip3 install virtualenv mkdir ~/my_project_dir cd ~/my_project_dir virtualenv my_project_env source my_project_env/bin/activateЧитать далее «Установить Jupiter notebook на Ubuntu 20.04»
python -m notebook
Список — это структура данных. Чтобы создать список, его элементы перечисляют через запятую в квадратных скобках и присваивают переменной. Например, вот список из пяти первых значений столбца installs
из таблицы с данными «Книжного грызуна»:
installs = [29486, 33968, 30830, 34361, 33968]
Да! Индексы могут быть отрицательными — это называется обратная индексация. Такая программа покажет на экране значение 36.8
, то есть последний элемент списка.
temperature = [36.6, 37.2, 36.5, 36.8] print(temperature[-1])
Индексы могут быть отрицательными. Чтобы получить последний элемент списка, в квадратных скобках указывают -1
. Индекс предпоследнего элемента — -2
, третьего с конца элемента — -3
и так далее. Обратиться к одному и тому же элементу можно как по обычному, так и по отрицательному индексу:
russian_cities = ['Москва', 'Санкт-Петербург', 'Томск', 'Екатеринбург', 'Владивосток', 'Смоленск', 'Барнаул', 'Сочи', 'Красноярск'] print(russian_cities[6]) print(russian_cities[-3])
Срезы — почти как индексы. Только они позволяют получить не один, а сразу несколько идущих подряд элементов списка. Чтобы сделать срез, в квадратных скобках через знак :
указывают начало и конец желаемого диапазона. Например, data[1:5]
, some_list[7:9]
.
Срезы начала и конца списка
Срезы конца списка работают аналогично. Последний элемент среза совпадает с окончанием списка, поэтому достаточно указать индекс первого элемента. Удобнее делать это через отрицательный индекс. Так можно получить последние три элемента prime_numbers
:
prime_numbers = [2, 3, 5, 7, 11, 13, 17]
print(prime_numbers[-3:])
Скопировать код[11, 13, 17]