Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using PyCharm Professional and Vagrant, how do I run a Django server?

I have set up already my configuration so that it will run the server remotely. When I click run, I see the command used:

ssh://vagrant@localhost:2222/usr/bin/python -u "C:/Users/MyName/ProjectName/config/manage.py" runserver localhost:8080

(I've replaced the directory names for anonymity reasons).

When I do run this, It fails (obviously) because it's using a windows path to my manage.py Specifically the error I get is

`/usr/bin/python: can't open file 'C:/Users/MyName/judgeapps/config/manage.py': [Errno 2] No such file or directory

What I can't figure out after extensive googling, is how to force django to use a path on my vagrant machine. How can I go about doing this?

like image 684
Kunc Avatar asked Nov 27 '14 09:11

Kunc


People also ask

Do I need PyCharm professional for Django?

Professional feature: download PyCharm Professional to try. Django project is intended for productive web development with Django. PyCharm takes care of creating specific directory structure and files required for a Django application, and providing the correct settings.

How do I run a Django project in PyCharm?

In the Settings/Preferences dialog ( Ctrl+Alt+S ) under the Languages and Frameworks node, click Django. In this page, choose the desired Django project. In the Manage.py tasks section, specify the following: In the field Manage script, specify the desired manage.py script.

Can we run Django on PyCharm?

PyCharm supports the latest Django versions. The corresponding Python versions depend on Django.

How do I add vagrant to PyCharm?

Press Ctrl+Alt+S to open the IDE settings and select Plugins. Install the Vagrant plugin.


1 Answers

The trick is creating a Python interpreter in PyCharm, and configuring the project to use this interpreter.

Note: The following applies to PyCharm Professional 4.0.

Create a Python Interpreter for Vagrant

  1. Start your Vagrant machine from PyCharm by navigating to Tools->Vagrant->Up
  2. SSH into your Vagrant box: Tools->Start SSH Session. Select Vagrant at [VagrantFolder] from the list that appears.
  3. From the terminal that appears, run which python. This will give you an absolute path to python on your virtual machine.
  4. File->Settings->Project->Project Interpreter. Click the + button to create a new one.
  5. Choose Vagrant. Your Vagrant instance folder should be the location of your VagrantFile on your host machine. Python interpreter path should be set to the absolute path you found in step 3 above.
  6. Click OK to save. Note: Vagrant has to be up in order for this to work.

Configure Your Project to Use the Correct Interpreter

  1. From the Run menu, select Edit Configurations
  2. Click + and add a new Django Server
  3. Set your Host to 0.0.0.0. This will bind the runserver command to an external IP.
  4. Check Run browser and set the URL to the host/port you mapped to your VM in your VagrantFile (for example, if I map my host's port 8080 to Vagrant's 8000, I'd use http://127.0.0.1:8080/)
  5. Choose the Python interpreter that you set up in the above section from the Python interpreter dropdown
  6. Add your absolute path mappings (this is sometimes optional, depending on where your VagrantFile is stored).
  7. Click OK to save.

Run your project, and enjoy the glory that is Vagrant.

like image 125
rnevius Avatar answered Nov 15 '22 00:11

rnevius