[PYTHON] Versuchen Sie, Discord Bot auf einem iPhone auszuführen, das Sie nicht mehr verwenden

Motivation

Ich möchte es 24 Stunden am Tag ausführen, aber der Mietserver ist problematisch und ich wünschte, ich könnte es auf meinem iPhone ausführen.

Was du vorbereitet hast

--iPhone (6s von ios13.4.1)

StaSh einfügen (Pythonista Shell)

Erstellen Sie eine Skriptdatei mit einem beliebigen Namen unter Dieses iPhone und schreiben Sie den folgenden Code

import requests as r; exec(r.get('http://bit.ly/get-stash').text)


 Starten Sie Pythonista nach der Installation neu und führen Sie launch_stash.py aus (am selben Speicherort wie die erstellte Datei).

## Fügen Sie discord.py ein
 Wenn Sie launch_stash.py ausführen, wird ein Bildschirm wie ein Terminal angezeigt. Geben Sie dort den folgenden Code ein

#### **`pip install discord.py[voice]`**
```py[voice]

 Wenn Sie keine Stimme verwenden

#### **`pip install discord.py`**
```py

 Mit einer geeigneten Skriptdatei, um zu überprüfen, ob die Installation erfolgreich ist
```import discord```
 Und versuchen Sie auszuführen

 Dann sagt ModuleNotFoundError, dass ctypes.macholib nicht existiert

## Fügen Sie Cpython ein
 Öffnen Sie die folgende URL in Safari und der Download wird gestartet. Warten Sie also
https://github.com/python/cpython/archive/v3.6.1.zip
 Öffnen Sie die Datei (App) nach dem Herunterladen
 Wenn Sie auf die Datei mit dem Namen "cpython" klicken, wird sie dekomprimiert. Warten Sie also eine Weile. Wenn Sie den dekomprimierten Ordner gedrückt halten und auf "Verschieben" klicken, wählen Sie den zu verschiebenden Speicherort aus. Drücken Sie daher in diesem iPhone> Pythonista 3, um ihn zu kopieren (dies kann einige Zeit dauern). )

 Öffnen Sie Pythonista, öffnen Sie die Registerkarte links, drücken Sie open ... von EXTERNAL FILES und wählen Sie Folder .... Drücken Sie Pythonista 3 in diesem iPhone, das Sie zuvor kopiert haben, und cpython wird angezeigt. Wählen Sie es also aus. Und drücken Sie Fertig

 Öffnen Sie dann, da der cpython-Ordner erstellt wurde, die Bibliothek des cpython-Ordners. Da sich darin ein Ordner namens ctypes befindet, drücken Sie Bearbeiten, um die Datei nach site-package-3 zu verschieben.

 Wenn alles gut geht, wird beim Importieren von Zwietracht kein Fehler ausgegeben

## Versuche dich zu bewegen
```python

import sys
import time
import discord

TOKEN = 'Zugriffstoken für Ihren BOT'
client = discord.Client()

#Verarbeitung zum Zeitpunkt der Verbindung
@client.event
async def on_connect():
    print('login')
    time.sleep(5)
    await client.close()
    print('logout')
    sys.exit()

client.run(TOKEN)

Es bewegte sich, also Yoshi!

Das erste Mal funktioniert es normal, aber nach dem zweiten Mal erhalte ich eine Fehlermeldung und es funktioniert nicht Ich kann es nicht lösen, weil ich die asynchrone Verarbeitung überhaupt nicht verstehe Die Fehleranweisung ist einfach und wird als Ereignisschleife geschlossen bezeichnet. Ich habe verschiedene Versuche unternommen, um sie zu überprüfen, konnte sie jedoch nicht lösen. Ich werde die asynchrone Verarbeitung studieren und von vorne beginnen ...

Code ohne Fehler

Es ist derjenige, der Pythonista fallen lässt, wenn es fertig ist.


import os
import time
import discord

TOKEN = 'Zugriffstoken für Ihren BOT'
client = discord.Client()

#Verarbeitung zum Zeitpunkt der Verbindung
@client.event
async def on_connect():
    print('login')
    time.sleep(5)
    await client.close()
    print('logout')
    os.abort()

client.run(TOKEN)

Referenzseite unten

Installieren Sie StaSh auf Pythonista 3. https://qiita.com/maboy/items/cef5dee13d5b2e9ac843 Missing ctypes.macholib breaks ctypes.util https://github.com/omz/Pythonista-Issues/issues/311

Recommended Posts

Versuchen Sie, Discord Bot auf einem iPhone auszuführen, das Sie nicht mehr verwenden
Erstellen Sie unter Windows 10 eine Umgebung, in der Sie MXNet ausprobieren können
Versuchen Sie, Tensorflow auf Docker + Anaconda auszuführen
Versuchen Sie, Jupyter Notebook auf einem Mac auszuführen
Verwenden Sie Funktionen, die auf der Benutzeroberfläche in Slack nicht mehr sichtbar sind