Bagaimana cara mengaktifkan virtualenv di dalam terminal PyCharm?


110

Saya telah menyiapkan PyCharm, membuat virtualenv saya (baik melalui perintah env virtual, atau langsung di PyCharm) dan mengaktifkan lingkungan itu sebagai Interpreter saya. Semuanya bekerja dengan baik.

Namun, jika saya membuka terminal menggunakan "Tools, Open Terminal", prompt shell yang diberikan tidak menggunakan virtual env; Saya masih harus menggunakan source ~/envs/someenv/bin/activatedalam Terminal itu untuk mengaktifkannya.

Metode lainnya adalah dengan mengaktifkan lingkungan dalam shell, dan menjalankan PyCharm dari lingkungan tersebut. Ini "bisa diterapkan" tapi cukup jelek, dan berarti saya memiliki masalah besar jika saya mengganti lingkungan atau proyek dari PyCharm: Saya sekarang menggunakan lingkungan yang benar-benar salah.

Adakah cara lain yang lebih mudah untuk membuat "Alat, Buka Terminal" secara otomatis mengaktifkan lingkungan virtual?

Jawaban:


95

Edit:

Menurut https://www.jetbrains.com/pycharm/whatsnew/#v2016-3-venv-in-terminal , PyCharm 2016.3 (dirilis November 2016) memiliki dukungan virutalenv untuk terminal di luar kotak

Virtualenv otomatis didukung untuk bash, zsh, fish, dan Windows cmd. Anda dapat menyesuaikan preferensi shell Anda di Pengaturan (Preferensi) | Alat | Terminal.


Metode Lama:

Buat file .pycharmrcdi folder rumah Anda dengan konten berikut

source ~/.bashrc
source ~/pycharmvenv/bin/activate

Menggunakan jalur virtualenv Anda sebagai parameter terakhir.

Kemudian atur Preferensi shell-> Pengaturan Proyek-> Jalur shell ke

/bin/bash --rcfile ~/.pycharmrc

9
Terima kasih! Saya tidak berpikir untuk menimpa file rc shell. Untuk lebih mendukung pycharm yang bekerja dengan banyak proyek, masing-masing mungkin memiliki virtualenv yang berbeda, saya akan menyebut file ".pycharmrc" sebagai sesuatu yang berbeda, dan mungkin memasukkannya ke dalam direktori env itu sendiri. ~/pycharmenv/bin/terminalactivateterdengar seperti pilihan yang bagus.
Chris Cogdon

1
Pycharm 4 memiliki virtualenv yang terintegrasi dalam IDE. Lihat jawaban saya untuk informasi lebih lanjut.
pferate

1
@PeterGibson, jawaban pferate tidak ada hubungannya dengan pertanyaan OP. Masalahnya adalah terminal bukan interpreter Python. Integrasi venv telah ada jauh sebelum PyCharm 4. Jawaban Anda berfungsi.
norbert

1
Ini adalah solusi paling sederhana, kecuali saya menempatkan saya .pycharmrcdi folder rumah proyek, sehingga saya dapat memiliki file yang berbeda untuk setiap proyek. Dalam proyek yang dikonfigurasi dengan benar, tidak perlu memberikan jalur absolut ke .pycharmrcfile.
tchakravarty

1
@SiminJie, PyCharm 2016.3.2 memiliki opsi seperti itu dari kotak. Buka: pengaturan -> Alat -> Terminal. Dan pastikan opsi "Activate virtualenv" diaktifkan.
renskiy

45

Memperbarui:

Preferensi di Pengaturan (Preferensi) | Alat | Terminal bersifat global.
Jika Anda menggunakan venv untuk setiap proyek, ingatlah untuk menggunakan variabel jalur saat ini dan nama venv default:

"cmd.exe" /k ""%CD%\venv\Scripts\activate"" 

Untuk pengguna Windows: saat menggunakan PyCharm dengan lingkungan virtual, Anda dapat menggunakan /Kparameter to cmd.exeuntuk menyetel lingkungan virtual secara otomatis.

PyCharm 3 atau 4: Settings, Terminal, Default shelldan add /K <path-to-your-activate.bat>.

PyCharm 5: Settings, Tools, Terminal, dan menambahkan /K <path-to-your-activate.bat>untuk Shell path.

PyCharm 2016,1 atau 2016,2: Settings, Tools, Terminal, dan menambahkan ""/K <path-to-your-activate.bat>""ke Shell pathdan menambahkan (keberatan tanda kutip). Tambahkan juga tanda kutip di sekitar cmd.exe, menghasilkan:

"cmd.exe" /k ""C:\mypath\my-venv\Scripts\activate.bat""


Dalam hal ini %CD%adalah direktori kerja saat ini, lihat perintah shell Windows untuk mendapatkan path lengkap ke direktori saat ini?
bad_coder

40

Untuk pengguna Windows saat menggunakan PyCharm dan lingkungan virtual di Windows, Anda dapat menggunakan parameter / k ke cmd.exe untuk menyetel lingkungan virtual secara otomatis.

Buka Pengaturan, Terminal, Shell default dan tambahkan /K <path-to-your-activate.bat>.

Saya tidak memiliki reputasi untuk mengomentari tanggapan sebelumnya, jadi posting versi yang dikoreksi ini. Ini benar-benar menghemat BANYAK waktu.

Memperbarui:

Catatan: Pycharm sekarang mendukung lingkungan virtual secara langsung dan tampaknya berfungsi dengan baik untuk saya - jadi solusi saya tidak diperlukan lagi.


Ini bagus, tetapi hanya jika Anda hanya memiliki satu virtualenv untuk semua proyek Anda. Pengaturan shell default dibagikan di seluruh proyek
MartinM

7

Berdasarkan jawaban dari Peter dan eksperimen, saya telah menemukan "solusi umum" yang bagus, yang memecahkan hal berikut:

  • Mengembalikan perilaku shell login. PyCharm biasanya menjalankan shell login, tetapi --rcfile menghentikan ini terjadi. Skrip masih menggunakan --rcfile, tetapi mencoba meniru perilaku INVOCATION dari shell login.
  • Menghilangkan kebutuhan untuk membuat rcfile untuk setiap lingkungan
  • Menghilangkan kebutuhan untuk memperbarui pengaturan proyek jika Anda mengubah lingkungan.

Letakkan skrip ini ke direktori bin di suatu tempat. Misalnya ~ / bin / pycharmactivate

if [ -r "/etc/profile" ] ; then . /etc/profile ; fi
if [ -r "~/.bash_profile" ] ; then
    . ~/.bash_profile
elif [ -r "~/.bash_login" ] ; then
    . ~/.bash_login
elif [ -r "~/.profile" ] ; then
    . ~/.profile
fi
ACTIVATERC=`cat .idea/workspace.xml | perl -n -e 'print "\$1/bin/activate" if m:option name="SDK_HOME" value="\\\$USER_HOME\\\$(.*)/bin/python":'`
if [ -n "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; else echo "Could not find virtualenv from PyCharm" ; fi

Kemudian setel jalur Shell PyCharm ke:

/bin/bash --rcfile ~/bin/pycharmactivate

1
TERIMA KASIH! Ini berhasil untuk saya setelah berjam-jam upaya yang gagal untuk mencari tahu di mana harus memulai profil bashrc dan bash. Namun itu melempar dan kesalahan bahwa ia tidak dapat menemukan env virtual saya jadi saya memodifikasinya seperti itu, dapatkah Anda memberi tahu saya jika tidak apa-apa? if [ -r "/etc/profile" ] ; then . /etc/profile ; fi if [ -r "~/.bash_profile" ] ; then . ~/.bash_profile elif [ -r "~/.bash_login" ] ; then . ~/.bash_login elif [ -r "~/.profile" ] ; then . ~/.profile fi source ~/learnp/project1/venv/bin/activate
zerohedge

@zerohedge: Skrip Anda akan berfungsi dengan baik, tetapi telah diperbaiki pada virtualenv "project1" Anda. Skrip di atas seharusnya melakukan deteksi otomatis, tetapi ada banyak asumsi yang dibuat: bahwa direktori kerja awal adalah lokasi direktori ".idea"; bahwa format file workspace.xml tidak berubah secara signifikan. Sayangnya, tampaknya pycharm versi 5 telah membuat perubahan signifikan di area tersebut. Saya tidak tahu di mana datanya, sekarang.
Chris Cogdon

baik saya tidak keberatan mengubah penambahan saya tergantung pada proyek, karena Jalur Shell ke juga khusus untuk proyek. Saya hanya bisa mendapatkan prompt yang mengatakan "bash 3.2 $:" sebelum menemukan skrip Anda, tanpa indikasi direktori saya saat ini atau kemiripan apa pun dengan prompt Terminal saya. Terima kasih lagi!
zerohedge

7

PyCharm 4 sekarang memiliki virtualenv yang terintegrasi dalam IDE. Saat memilih juru bahasa proyek, Anda dapat membuat, menambah, atau memilih virtualenv. Mereka telah menambahkan "Konsol Python" yang berjalan di penafsir proyek yang dikonfigurasi.

Info selengkapnya di sini.


11
Bagaimana ini menjawab OP? Masih harus source /path/to/venv/bin/activatemanual di terminal.
frnhr

6

Terima kasih Chris, skrip Anda berfungsi untuk beberapa proyek tetapi tidak semuanya di mesin saya. Ini adalah skrip yang saya tulis dan saya harap ada yang menganggapnya berguna.

#Stored in ~/.pycharmrc 

ACTIVATERC=$(python -c 'import re
import os
from glob import glob

try:
  #sets Current Working Directory to _the_projects .idea folder
  os.chdir(os.getcwd()+"/.idea") 

  #gets every file in the cwd and sets _the_projects iml file
  for file in glob("*"): 
    if re.match("(.*).iml", file):
      project_iml_file = file

  #gets _the_virtual_env for _the_project
  for line in open(project_iml_file):
    env_name = re.findall("~/(.*)\" jdkType", line.strip())
    # created or changed a virtual_env after project creation? this will be true
    if env_name:
      print env_name[0] + "/bin/activate"
      break

    inherited = re.findall("type=\"inheritedJdk\"", line.strip())
    # set a virtual_env during project creation? this will be true
    if inherited:
      break

  # find _the_virtual_env in misc.xml
  if inherited:
    for line in open("misc.xml").readlines():
      env_at_project_creation = re.findall("\~/(.*)\" project-jdk", line.strip())
      if env_at_project_creation:
        print env_at_project_creation[0] + "/bin/activate"
        break
finally:
  pass
')

if [ "$ACTIVATERC" ] ; then . "$HOME/$ACTIVATERC" ; fi

Terima kasih, ini berhasil untuk saya! Harus melakukan dua hal tambahan. 1) Tambahkan source /etc/profiledi awal file ~ / .pycharmrc (di Mac Yosemite) 2) Di Pycharm edit Preferensi> Alat> Terminal> Jalur shell ke "/ bin / bash --rcfile ~ / .pycharmrc"
frnhr

Ini luar biasa, terima kasih! Jika Anda menggunakan Python 3, ingatlah untuk meletakkan tanda kurung untuk fungsi cetak. Saya sendiri harus meletakkan "export ~ / .bashrc" sebelum script ini.
Raphaël Gomès

5

Saya telah melihat semua jawaban di atas tetapi tidak ada yang cukup elegan untuk saya. Di Pycharm 2017.1.3 (di komputer saya), cara termudah adalah membuka Settings->Tools->Terminaldan memeriksa Shell integrationserta Activate virtualenvopsi.

gambar


Jawaban yang diterima mengutip hal yang sama. Hanya saja tidak ada gambarnya.
Vikas Prasad

5

Jika Anda menggunakan versi windows, caranya cukup mudah. Jika Anda sudah memiliki lingkungan virtual cukup arahkan ke foldernya, cari activate.batdi dalam Scriptsfolder. salin jalur lengkapnya dan tempel di terminal pycharm lalu tekan Enterdan selesai!

Jika Anda perlu membuat lingkungan virtual baru:

Buka file> pengaturan lalu cari project interpreter, buka, klik tombol roda gigi dan buat lingkungan di mana pun Anda inginkan, lalu ikuti paragraf pertama.

Gear!


Jawaban yang bagus! Terima kasih! Pertanyaan cepat. Saya memiliki 3 lingkungan virtual berbeda yang saya buat di Anaconda. Apakah ada yang terpisah activate.batuntuk masing-masing?
pengguna1700890

1
@ user1700890 ya! Jika Anda belum menimpa lingkungan, mereka harus memiliki folder terpisah dan sebagai hasilnya, activate.batfile terpisah . jika Anda menyukai jawabannya, jangan ragu untuk memberi
suara positif

Terima kasih saya baru saja mengecek, tidak ada folder di Scriptsfolder. Juga Pycharm mengeluh bahwa activate.batbukan SDK python yang valid
user1700890

1
Jadi saya pikir Anda harus terlebih dahulu mencoba dan menemukan folder lingkungan virtual yang dibuat ketika Anda menggunakan Anaconda dan kemudian menjalankan activatefile batch di dalamnya. atau jika memungkinkan, lakukan saja dengan menciptakan lingkungan baru.
AmiNadimi

3

Di Mac itu PyCharm => Preferensi ... => Alat => Terminal => Aktifkan virtualenv , yang harus diaktifkan secara default.


2

Saya baru saja menambahkan skrip bernama pycharmactivate ke direktori home saya. Tetapkan nilai File PyCharm (4.0.1)> Pengaturan> Alat> Terminal> Jalur shell ke / bin / bash --rcfile ~ / pycharmactivate. Mungkin bukan solusi terbaik jika Anda memiliki proyek dan direktori / nama virtualenv yang berbeda, tetapi ini berfungsi untuk saya. Skrip ini berisi 3 baris berikut dan mengasumsikan virtualenv Anda memiliki nama yang sama dengan direktori proyek Anda.

source ~/.bashrc
projectdir=${PWD##*/}
source ~/.virtualenvs/$projectdir/bin/activate

2

Menindaklanjuti jawaban Peter, berikut file versi Mac .pycharmrc:

source /etc/profile
source ~/.bash_profile
source  <venv_dir>/bin/activate

Induk ayam


1

Saya memiliki solusi yang berfungsi pada mesin Windows 7 saya.

Saya percaya terminal PyCharm adalah hasil dari menjalankannya cmd.exe, yang akan memuat PATHvariabel Windows , dan menggunakan versi Python yang ditemukan pertama kali di dalamnya PATH. Untuk mengedit variabel ini, klik kanan My Computer -> Properties -> Advanced System Settings -> tab Advanced -> Environment Variables ... tombol. Di bagian Variabel sistem , pilih dan edit PATHvariabel.

Berikut adalah bagian yang relevan dari saya PATH sebelum mengedit:

C: \ Python27 \;
C: \ Python27 \ Lib \ site-packages \ pip \;
C: \ Python27 \ Scripts;
C: \ Python27 \ Lib \ site-packages \ django \ bin;

... dan setelah mengedit PATH(sekarang hanya 3 baris):

C: [project_path] \ virtualenv-Py2.7_Dj1.7 \ Lib \ site-packages \ pip;
C: [project_path] \ virtualenvs \ virtualenv-Py2.7_Dj1.7 \ Scripts;
C: [project_path] \ virtualenvs \ virtualenv-Py2.7_Dj1.7 \ Lib \ site-packages \ django \ bin;

Untuk mengujinya, buka terminal windows baru ( Start -> ketik cmddan tekan Enter) dan lihat apakah itu menggunakan lingkungan virtual Anda. Jika berhasil, mulai ulang PyCharm lalu uji di terminal PyCharm.


1

inilah yang saya lakukan: buat file activ_env.bat (windows, mungkin .sh di linux) di kode sumber folde:

/env_yourenvlocate/scripts/activate.bat

dan file lain deactivate_env.bat:

/env_yourenvlocate/scripts/deactivate.bat

setiap membuka jendela terminal, cukup jalankan file bat untuk mengaktifkan / menonaktifkan virtualenv, Anda akan tetap berada di jalur kode sumber, tidak perlu mengubah jalur ke dan kembali.

E:\Projects\django_study\src>active_env.bat

E:\Projects\django_study\src>../env_django_study/scripts/activate.bat
(env_django_study) E:\Projects\django_study\src>



(env_django_study) E:\Projects\django_study\src>deactive_env.bat

(env_django_study)E:\Projects\django_study\src>../env_django_study/scripts/deactivate.bat
E:\Projects\django_study\src>

1

Jika Pycharm 2016.1.4v Anda dan lebih tinggi, Anda harus menggunakan "default path" /K "<path-to-your-activate.bat>" kutipan jangan lupa


1

Jika Anda telah memindahkan proyek Anda ke direktori lain, Anda dapat mengatur jalur baru melalui dialog Pengaturan. Dan kemudian Anda perlu mengatur Penerjemah Proyek ini di dialog Edit Konfigurasi.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini


0

Alternatif lain adalah menggunakan virtualenvwrapper untuk mengelola lingkungan virtual Anda. Tampaknya setelah skrip virtualenvwrapper diaktifkan , pycharm dapat menggunakannya dan kemudian workonperintah sederhana akan tersedia dari konsol pycharm dan memberi Anda lingkungan virtual yang tersedia:

kevin@debian:~/Development/django-tutorial$ workon
django-tutorial
FlaskHF
SQLAlchemy
themarkdownapp
kevin@debian:~/Development/django-tutorial$ workon django-tutorial
(django-tutorial)kevin@debian:~/Development/django-tutorial$ 

1
Namun, hal itu mengharuskan saya untuk mengaktifkan skrip workon setiap kali saya membuka terminal, dan mengetahui lingkungan virtual mana yang saat ini digunakan pycharm untuk menjalankan program, keduanya secara eksplisit saya coba hindari.
Chris Cogdon

@ChrisCog ah, saya mengerti
kaylor11

0

Metode ini harus bekerja dengan lingkungan virtual arbitrer per proyek dan tidak membuat asumsi di lingkungan Anda karena menggunakan kait yang Anda buat.

Anda menulis:

  • Skrip global yang memanggil pengait
  • Skrip hook per proyek PyCharm (tidak wajib)

Mengingat bahwa PyCharm terbaru (Komunitas 2016.1) tidak mengizinkan pengaturan Terminal per proyek dimulai dengan skrip yang memanggil hook khusus proyek. Ini milik saya ~/.pycharmrc:

if [ -r ".pycharm/term-activate" ]; then
   echo "Terminal activation hook detected."
   echo "Loading Bash profile..."
   source ~/.bash_profile
   echo "Activating terminal hook..."
   source ".pycharm/term-activate"
   source activate $PYCHARM_VENV
fi

Jika Anda menggunakan sesuatu selain Bash, panggil .bash_profilepadanan Anda sendiri jika Anda mau.

Sekarang atur PyCharm Anda "Tools -> Terminal -> Shell Path" untuk menjalankan skrip ini, misalnya: /bin/bash --rcfile ~/.pycharmrc

Terakhir, untuk setiap proyek PyCharm Anda memerlukan lingkungan virtual tertentu yang diaktifkan, buat file dalam root proyek PyCharm .pycharm/term-activate. Ini adalah hook Anda dan itu hanya akan menentukan nama lingkungan virtual yang diinginkan untuk proyek PyCharm Anda:

export PYCHARM_VENV=<your-virtual-env-name>

Anda tentu saja dapat memperluas kaitan Anda dengan apa pun yang menurut Anda berguna di lingkungan terminal proyek PyCharm khusus Anda.


0

Untuk lingkungan virtual conda pada Windows, pastikan file batch Anda TIDAK dinamai activate.batkarena ini akan menyebabkan konflik dengan activateperintah conda , yang mengakibatkan pemanggilan file batch secara berulang.

Apa yang berhasil untuk saya adalah jalur Shell berikut:

"cmd.exe" /k ""C:\FullPathToYourProject\activate-env.bat""

Dan di file enable-env.bat:

call activate myenvname

0

Saya menginginkan lingkungan virtual terpisah untuk setiap proyek, dan tidak terlalu peduli untuk memiliki file tambahan untuk memfasilitasi ini. Solusi yang hanya perlu Anda lakukan sekali dan berfungsi untuk semua proyek kemudian menambahkan yang berikut ini ke .bashrcatau .bash_profile:

if [ -d "./venv" ]; then
    source ./venv/bin/activate
fi

Ini memeriksa apakah ada lingkungan virtual tempat terminal dibuka, dan jika demikian mengaktifkannya (dan tentu saja jalur relatif lainnya dapat digunakan). Pengaturan terminal PyCharm dapat dibiarkan sebagai default.


0

PyCharm 4.5.4

Buat file .pycharmrc di folder home Anda dengan konten berikut

source ~/.bashrc
source ~/pycharmvenv/bin/activate

Menggunakan jalur virtualenv Anda sebagai parameter terakhir.

Kemudian atur Preferensi shell-> Pengaturan Proyek-> Jalur shell ke

/bin/bash --rcfile ~/.pycharmrc

Saya tidak tahu mengapa, tapi itu tidak berhasil untuk saya. PyCharm mencetak kesalahan.

cmd.exe /K "<path-to-your-activate.bat>" Ini berfungsi, tetapi itu membuat virtualenv yang sama untuk setiap proyek, dan bahkan jika ini tidak perlu.

Ini tanda terima bekerja! Tetapi string itu /env_yourenvlocate/scripts/activate.batharus mengandung tanda kutip, seperti ini "Full_path_to_your_env_locate\scripts\activate.bat"!

Menonaktifkan virtualenv sangat mudah - ketik terminal 'nonaktifkan'

(virt_env) D:\Projects\src>deactivate
D:\Projects\src>

"Saya tidak tahu kenapa, tapi tidak berhasil untuk saya" - mungkin karena solusi ini bagus untuk linux / mac - bukan untuk windows? ;)
Nir Alfasi

0

Solusi untuk WSL (Ubuntu di Windows)

Jika Anda menggunakan WSL (Ubuntu pada Windows), Anda juga dapat membuka bash sebagai terminal di pycharm dan mengaktifkan virtualenv linux.

Gunakan .pycharmrcfile seperti yang dijelaskan dalam jawaban Peter Gibson; Tambahkan .pycharmrcfile ke direktori home Anda dengan konten berikut:

source ~/.bashrc
source ~/path_to_virtualenv/bin/activate

Di File Pycharm > Pengaturan> Alat> Terminal tambahkan 'jalur Shell' berikut:

"C:/Windows/system32/bash.exe" -c "bash --rcfile ~/.pycharmrc"


Proyek virtualenv tertentu

Path ke virtualenv .pycharmrcAnda tidak harus mutlak. Anda dapat menyetel virtualenv khusus proyek dengan menyetel jalur relatif dari direktori proyek Anda. Virtualenv saya selalu terletak di folder 'venv' di bawah direktori proyek saya, jadi .pycharmrcfile saya terlihat seperti ini:

sumber ~ / .bashrc
 sumber ~ / pycharmvenv / bin / aktifkan jalur #absolute
source ./venv/bin/activate #relative path


BONUS: secara otomatis membuka terowongan ssh untuk menghubungkan virtualenv sebagai penerjemah proyek

Tambahkan berikut ini ke .pycharmrcfile Anda :

if [ $(ps -aux | grep -c 'ssh') -lt 2 ]; then
    sudo service ssh start 
fi

Ini memeriksa apakah terowongan ssh sudah dibuka, dan membuka satu jika tidak. Di File -> Settings -> Project -> Project Interpreter di Pycharm, tambahkan interpreter jarak jauh baru dengan konfigurasi berikut:

+ -------------------------- + ---------------------- ----------- + ------- + ---- +
| Nama: | <Nama juru bahasa> | | |
| Pilih | 'Kredensial SSH' | | |
| Host: | 127.0.0.1 | Pelabuhan: | 22 |
| Pengguna: | <Nama pengguna Linux> | | |
| Jenis otorisasi: | 'Kata Sandi' | | |
| Sandi: | <Sandi Linux> | | |
| Jalur interpreter Python: | <Jalur Linux ke virtualenv Anda> | | |
| Jalur pembantu Python: | <Diatur secara otomatis> | | |
+ -------------------------- + ---------------------- ----------- + ------- + ---- +

Sekarang ketika Anda membuka proyek Anda, bash Anda secara otomatis dimulai di virtualenv Anda, membuka terowongan ssh, dan pycharm menghubungkan virtualenv sebagai juru bahasa jarak jauh.

peringatan: pembaruan terakhir di Windows secara otomatis memulai layanan SshBroker dan SshProxy saat startup. Ini memblokir terowongan ssh dari linux ke windows. Anda dapat menghentikan layanan ini di Pengelola Tugas -> Layanan, setelah itu semuanya akan berfungsi kembali.


0

Satu opsi yang Anda miliki ketika Anda memasuki terminal> Jalankan> Debug> Edit Konfigurasi masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

pilih lingkungan yang sesuai. Juga ketika Anda membuat proyek baru - ia meminta untuk mengkonfigurasi lokasi ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.