Как сделать Discord Bot в Python
Система у нас:
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-117-generic x86_64)
Обновляем:
sudo apt update
sudo apt install software-properties-common
Добавляем:
sudo add-apt-repository ppa:deadsnakes/ppa
Устанавливаем:
sudo apt install python3.7
Проверяем:
python3.7 --version
Ставим:
sudo apt install python3-pip
Проверяем:
pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
Ставим:
pip3 install discord.py
Выполнить команду Shell в Python с модулем os
Позвольте нам создать простую программу на Python, которая выполняет команду оболочки с модулем os.
import os myCmd = 'ls -la' os.system (myCmd)
Теперь, если мы запускаем эту программу, и вот что мы видим в выводе.
python myprog.py total 40 drwxr-xr-x 3 andreyex andreyex 4096 Jan 20 13:23 .
Это содержимое каталога, в котором хранится myprog.py.
Если вы хотите использовать вывод команды оболочки, вы можете сохранить его в файле непосредственно из команды оболочки:
import os myCmd = 'ls -la > out.txt' os.system(myCmd)
Вы также можете сохранить выходные данные команды оболочки в переменной следующим образом:
import os myCmd = os.popen('ls -la').read() print(myCmd)
Если вы запустите вышеупомянутую программу, она напечатает содержимое переменной myCmd и будет такой же, как и результат команды ls, которую мы видели ранее.
Теперь давайте посмотрим другой способ запуска команды Linux в Python.
Выполнить команду оболочки в Python с модулем подпроцесса
Несколько лучший способ запуска команд оболочки в Python – использование подпроцессмодуль.
Если вы хотите запустить команду оболочки без каких-либо параметров и аргументов, вы можете вызвать подпроцесс следующим образом:
import subprocess subprocess.call("ls")
Метод call выполнит команду оболочки. Вы увидите содержимое текущего рабочего каталога при запуске программы:
python myprog.py agatha.txt count1.txt file1.txt myprog.py <br> target count count2.txt file2.txt sherlock.txt
Если вы хотите предоставить опции и аргументы вместе с командой оболочки, вам придется предоставить их в виде списка.
import subprocess subprocess.call(["ls", "-l", "."])
Когда вы запустите программу, вы увидите содержимое текущего каталога в виде списка.
Теперь, когда вы знаете, как запустить команду оболочки с подпроцессом, возникает вопрос о сохранении вывода команды оболочки.
Для этого вам нужно будет использовать функцию Popen. Он выводит объект Popen, у которого есть метод communication(), который можно использовать для получения стандартного вывода и ошибки в виде кортежа.
import subprocess MyOut = subprocess.Popen(['ls', '-l', '.'], <br> stdout=subprocess.PIPE, stderr=subprocess.STDOUT) stdout,stderr = MyOut.communicate() print(stdout) print(stderr)
Когда вы запустите программу, вы увидите stdout и stderr (которых в данном случае нет).
python myprog.py total 32 -r--r--r-- 1 andreyex andreyex <br> 456 Dec 11 21:29 agatha.txt -rw-r--r-- 1 andreyex andreyex 0 Jan 20 12:11 count -rw-r--r-- 1 andreyex andreyex 14 Jan 10 16:12 count1.txt -rw-r--r--
В этом примере мы рассмотрим создание .exe на примере Python3.4.
Прежде всего на нужно создать виртуальное окружение для Python3.4. В этом примере мы назовем myenv, Вы можете выбрать любое другое имя, но не забывайте сделать соответствующие изменения.
На терминале наберите следующие команды:
>py -3.4 -m venv myenv > myenv\Scripts\activate.bat
В командной строке появится префикс myenv, а это значит, что виртуальное окружение с именем myenv загружено. Все команды Python теперь будет использовать новое виртуальное окружение.
Теперь давайте установим py2exe (https://pypi.python.org/pypi/py2exe~~HEAD=dobj) в нашем виртуальном окружении:
>pip install py2exe
И, наконец, чтобы создать единый EXE-файл, в нашем виртуальном окружении выполняем команду:
>python -m py2exe.build_exe hello.py -c --bundle-files 0
(замените hello.py на имя вашего скрипта. Если скрипт находится в другой папке, то нужно использовать полный путь к вашему сценарию, например, C:\Projects\Python\ hello.py). Это создаст папку DIST, которая содержит исполняемый файл. Для быстрого доступа к нему, наберите в терминале:
> explorer dist
Вы увидите путь к папке, где находится EXE-файл.
Примечание: При выполнении, откроется окно и исчезают так же быстро, как и появилось.
Это происходит потому, что операционная система автоматически закрывает терминал, в котором консольная программа закончена.
Для того, чтобы изменить эту ситуацию, можно добавить строчку
> input (" Нажмите для выхода ... ")
в конце файла Python. Интерпретатор будет ждать ввода пользователя, а окно будет оставаться открытым, пока пользователь не нажимает клавишу ввода.
Вы можете подробно изучить использование py2exe в документации на странице модуля: https://pypi.python.org/pypi/py2exe
Выход из виртуального окружения производится командой
>deactivate
Способ 2
Через командную строку Windows устанавливаем pyinstaller:
>pip install pyinstaller
В командной строке переходим в папку, где находится файл
cd c:\...
Затем в командной строке набираем команду
pyinstaller --onefile example.py
Вместо exapmle.py используем имя файла, из которого нужно создать exe файл.
Через пару минут все готово! Скоркее всего, exe файл будет находится во созданной подпапке dist