Bagaimana cara menggunakan konsol Shell_plus (iPython) di PyCharm?

Saya sedang belajar mengembangkan di Django dan saya menggunakan PyCharm pada proyek saya dan saya ingin menggunakan konsol iPython di dalamnya.

iPython diluncurkan, bukan ini masalahnya.

Masalahnya adalah ketika saya meluncurkan iPython dari konsol, semua model saya dan kelas utils lainnya diimpor.

Inilah yang terjadi ketika saya meluncurkan perintah python3 manage.py shell_plus:

# Shell Plus Model Imports
from app.models.models import Model1, Model2, Model3
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import Group, Permission, User
from django.contrib.contenttypes.models import ContentType
from django.contrib.sessions.models import Session
# Shell Plus Django Imports
from django.core.cache import cache
from django.conf import settings
from django.contrib.auth import get_user_model
from django.db import transaction
from django.db.models import Avg, Case, Count, F, Max, Min, Prefetch, Q, Sum, When, Exists, OuterRef, Subquery
from django.utils import timezone
from django.urls import reverse
/myproject/env/lib/python3.7/site-packages/IPython/core/history.py:226: UserWarning: IPython History requires SQLite, your history will not be saved
  warn("IPython History requires SQLite, your history will not be saved")
Python 3.7.4 (default, Jul 23 2019, 18:02:54) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 

Sementara itu ketika saya memulai Konsol Python di PyCharm, tidak ada impor yang dilakukan dan saya harus mengimpor semua model saya secara manual. Inilah yang terjadi di Konsol PyCharm Python:

/home/user/myproject/env/bin/python /snap/pycharm-community/188/plugins/python-ce/helpers/pydev/pydevconsole.py --mode=client --port=33543
/home/user/myproject/env/lib/python3.7/site-packages/IPython/core/history.py:226: UserWarning: IPython History requires SQLite, your history will not be saved
  warn("IPython History requires SQLite, your history will not be saved")
import sys, django
print('Python %s on %s' % (sys.version, sys.platform))
Python 3.7.4 (default, Jul 23 2019, 18:02:54) 
Type 'copyright', 'credits' or 'license' for more information
In[2]:

Jelas, sebuah perintah dijalankan pada perintah shell_plus yang tidak ada di konsol PyCharm.

Dan berikut adalah versi yang digunakan.

Ubuntu = 18.04 LTS
python = 3.7.4
iPython = 7.13.0
Django = 3.0.5
PyCharm = 2019.3.4 Community

Terima kasih atas bantuan Anda, saya dapat membantu saya.


person Bravo2bad    schedule 08.04.2020    source sumber


Jawaban (2)


anda dapat menjalankan perintah Django khusus di pycharm menggunakan Ctrl + ALT + R atau melalui menu Tools -> Run manage.py tasks

person Umar    schedule 08.04.2020
comment
Saya tidak memiliki opsi ini di PyCharm 2019.3.4 Apakah Anda juga tahu skrip mana yang harus saya gunakan untuk memanggil Shell_plus ? Terima kasih atas bantuan Anda. - person Bravo2bad; 09.04.2020
comment
apakah Anda menggunakan versi komunitas atau versi profesional? karena opsi ini hanya tersedia dalam versi profesional. maaf, lupa menyebutkannya sebelumnya - person Umar; 09.04.2020
comment
Versi komunitas. Ya maaf. Saya lupa itu adalah dua versi IDE. Jadi, ada cara lain untuk menggunakan shell iPython di Konsol Python? - person Bravo2bad; 09.04.2020
comment
Maaf, saya tidak tahu - person Umar; 09.04.2020
comment
Terima kasih sudah mencoba. - person Bravo2bad; 11.04.2020

Saya menemukan ini online dan berfungsi dengan baik (dengan muat ulang otomatis)

???? CATATAN: Ini hanya berfungsi jika Anda berpura-pura menggunakan fitur Django Console di Pycharm

Rekatkan kode di bawah ini ke Build, Execution, Deployment > Console > Django Console > Starting Script

# requirements: `django_extensions`, `IPython`
import sys
import django

from IPython.core.getipython import get_ipython
from django_extensions.management.notebook_extension import load_ipython_extension

print('Python %s on %s' % (sys.version, sys.platform))
print('Django %s' % django.get_version())

sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django):
    django.setup()
ipython = get_ipython()
load_ipython_extension(ipython)

# NOTE: If you don't use the autoreload feature, don't paste the three lines below
load_ipython_extension(ipython)
ipython.extension_manager.load_extension('autoreload')
ipython.magics_manager.registry['AutoreloadMagics'].autoreload('2') 
person EsseTi    schedule 29.12.2020