I uploaded my website project on Heroku cloud a while ago and I needed to edit some stuff with the project and when I reupload the website again in the same app directory I get the message from Heroku that says Application error then I tried to create a new app directory in Heroku by command: create heroku appname
and when I upload my project doesn't work again with the different directory on Heroku so what is the step I missed here?
I followed up this lesson https://www.youtube.com/watch?v=MoX36izzEWY&t=1707s step by step and I don't know what the step I missed or what is may the new in Heroku didn't exist in this tutorial?
- I did create a virtual environment
- I did create all files that Heroku needs like:
ProcFile
pipfile
requirements.txt
and I installed everything as the tutorial said exactly: (gunicorn, django-heroku, whitenoise and so else)
last note:
I'm on Linux Ubuntu
I found the answer:
I had to install gunicorn into PipFile file side by side requirements.txt file
so, for the future coders, this is my mistake you have to install gunicorn into two files and they are: requirements.txt and PipFile
for Pipfile file you have to run the following command:
- $ pip3 install pipenv
- $ pipenv install gunicorn
Note that:
These commands run on the Linux system.
I have django project in virtualenv and now I am publishing it in server but the problem is I can not move project from virtualenv, when I do this then related packages inside site-package, cant be read and errors occur, how can I bring out my project from virtualenv without any issuing
Create a new virtualenv on the server. It's easy
Step 1 Get the list of modules in the current virtualenv
source /path/to/current/bin/activate
pip freeze > /tmp/requirements.txt
Step 2 Create a new virtualenv. Login to your new server, copy the requirements file there. Then either change into a suitable directory before excuting the virtualenv command or give a full path.
deactivate
virtualenv -p python envname
Step 3 Install modules
source envname/bin/activate
pip install -r /tmp/requirements.txt
That's it.
As #bruno has pointed out, you really should be using a virtualenv on the server. And you should be using it on your local dev server as well. Then you can be really sure that the code will run at both ends without any surprises.
I have an django project (RESTful API written using Django Rest Framework) which uses the Postgres database.
I have a local git repository of the project and also I have it on my github account, and I want to deploy the porject to heroku.
In the official heroku tutorials, they don't show anything about how to prepare your app to deployment - (requirements file, settings file, Proc File, maybe more stuff that I don't know - which I saw in different tutorials that you need to do).
At the moment I only have the django app without any added file.
My question is - what do I need to do to prepare my app to deployment to heroku? as I said at the moment I have a local git repository and its also on Github.
Thanks!
1) Create a file called Procfile (no extension) in your project root with the following inside:
web: gunicorn APP_NAME.wsgi (replace APP_NAME with your app's name).
2) Pip install gunicorn and dj-database-url
3) In your virtual env terminal, run pip freeze > requirements.txt in your project root (do this every time you pip install any new packages).
4) In your production settings file, add the following to make your database work on heroku:
import dj_database_url
DATABASES['default'] = dj_database_url.config()
Note: This will cause errors in your local environment, so make sure you have a prod.py settings file as well (ask if you need an explanation).
5) Add heroku to your git settings via git remote add heroku git#heroku.com:HEROKU_APP_NAME.git (replace HEROKU_APP_NAME with your Heroku app name).
6) Once you do git add --all, git commit -m "SOME MESSAGE HERE" and git push, you can do git push heroku master.
EDIT: I added the path to django-admin.py to my system path (C:\Users\me\Downloads\Django-1.5.1\django\bin) but even after this when I try to run django-admin.py startproject mysite, it asks me to pick a file to open with and even when I pick python.py, it opens in chrome for some reason. I also tried python django-admin.py startproject mysite but it says
python: can't open file django-admin.py: [Errno 2] No such file or directory
Any idea what is wrong?
I added python27 to the system path and when I open up cmd and switch to a directory (C:\Users\me\djcode) and then type in django-admin.py startproject mysite it says
django-admin.py is not recognized as an internal or external command, operable program or batch file
When I try typing the command python django-admin.py startproject mysite, it says
python: can't open file django-admin.py: [Errno 2] No such file or directory
Any idea why?
In the djangobook (http://www.djangobook.com/en/2.0/chapter02.html) it says
django-admin.py should be on your system path if you installed Django via its setup.py utility
what does this mean? how do I add django-admin.py to my system path? I am not sure where django-admin.py even is.
Working !!
If you are using window then first of all
create virtual environment
python -m venv venv
Then activate that environment
venv\Scripts\activate
Then install Django in that environment
pip install django
Then create django project named mysite
django-admin startproject mysite
I have the same problem because i have installed Django Manually. The solution for resolve :
Install Python https://www.python.org/downloads/ (if not installed)
Verify your Path : https://stackoverflow.com/a/17836439 It's very important or the next no work.
Install setuptool : Download the .py file here : https://bootstrap.pypa.io/ez_setup.py and execute this with python.
Install PIP with this command : easy_install pip
Clean Django : pip uninstall django
install Django : pip install django
Execut django-admin.py startproject mysite and enjoy.
If not OK, test django-admin-script.py startproject mysite. If is ok, your django installation is wrong.
Sorry for my bad english, i'm french :)
Find the folder where django-admin.py is located. Then go to Control Panel > System > Advanced System Settings > Environment Variables . In the User Variables and/or System Variables, search for an entry called PATH. Modify it by adding the folder you found earlier, use the other entries as guidance, basically just make sure they're separated by ;. If you have done all these steps, but are still in the same cmd prompt that you were using before doing them, close it and open a new one so it picks up on your changes.
For windows, the "django-admin" you need to create a project is an .exe file not a .py file and it is present at the following location:
C:\Python27\Scripts
so you have to add this location to your path.
After running pip install django wait for the setup to finish and
present you with a warning.
From the warning copy the path of where django is installed. In my
case it is
C:\Users\USERNAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8\LocalCache\local-packages\Python38\Scripts
Add that to PATH in environment variables and restart cmd or shell.
Try this: django-admin startproject mysite
I have tried all of the mentioned things however I was still unable to create a project using django-admin startapp appname. So I used python -m django startproject appname instead and was able to create the proejct
If it did not work for you even if you tried the command :
django-admin startproject mysite
Here's what worked for me:
Uninstall django
pip uninstall django
Add the below path to the PATH variables-
C:\Users\System_Name\AppData\Roaming\Python\Python39\Scripts
Note: In the above path, System_Name refers to the name of your laptop/pc.
Install django again
pip install django
You can check the version of django using django-admin --version
I've just created project using :
py -m django startproject Yourprojectname
You need to install django. It seems you have just downloaded it and expanded the archive.
Install setuptools
Install pip
Open a command prompt and then type pip install -U django (or, you can download the windows installer).
Once you have done the above steps, you need to make sure C:\Python27\Scripts is in your PATH; otherwise the commands will not work.
To set PATH, go to Environment Variables from My Computer (right click and then go to Manage, then on the left, Advanced Settings).
Finally, you'll need to run python django-admin.py and not django-admin.py
this one workked for me
python 2.6.6
django 1.6.11
python C:\Python26\Scripts\django-admin.py startproject myapplication
Try using. exe instead of .py.
It worked for me
Add the following address in the system path
C:\Users\{username}\AppData\Roaming\Python\Python39\Scripts
{username} : enter your username
Try this command: python -m django startproject myapp
I faced the same problem and tried many ways. Solved my problem by following these steps
Python installation manually
in my cmd
pip install Django
pip install djangorestframework
pip install django-cors-headers
pip install virtualenvwrapper-win
Windows+r
sysdm.cpl
In Advanced Option, Environment Variables> In user variable edit
path
C:\Users\mushf\AppData\Roaming\Python\Python310
C:\Users\mushf\AppData\Roaming\Python\Python310\Scripts
In System Variable> Edit
path
C:\Program Files\Python310\Scripts\
C:\Program Files\Python310\
After that create my project folder in the desired location:
django-admin start project ProjectName
My preferable IDE is pycharm
Instructions for Windows
You must have pip on your machine.
Open Visual Studio and open the project folder.
Open terminal from VS, Terminal tab. Go to the project directory.
pip3 install virtualenvwrapper
This must be done only the very first time you are setting up your environment.
Then run:
python -m venv env
Installs the needed files for running a virtual environment. You should see a folder added now. Create a virtual environment. Now activate it (i.e. start working in the virtual environment):
activate environment env\Scripts\activate
if activate doesn't work use this
env\Scripts\activate
Install Django in a virtual environment. If you want a specific version run:
pip install django==3.0.3
For the latest version just run:
pip install Django
To check the existing version:
pip freeze
To create a new project:
django-admin startproject simplesite
cd simplesite
python manage.py startapp helloworld
will create a new application in the project with a folder "helloworld"
python manage.py runserver 127.0.0.1:8080
Open in your browser http://localhost:8080 to test the running server.
Ctrl+C to stop the server.
copy the Django-admin.exe file into the folder you are using. the file can be found at python/python(version)/scripts. when you finish a folder should pop up in the name of your file
Just copy the Django admin.py file which is present actually where you have installed python in C:\program files\Python or in my case it was located at administrator\appdata\local\programs\python you can check yours and just copy the file that is Django admin from script folder to your newly created folder
I needed to update my System Environment Variable path so this answer helped me:
Add “django-admin.py” path to command line on Windows
You will have to activate the environment (env) before you run the command:
django-admin startproject myapp
I had the same problem.
For Windows user:
Step 1: Open cmd in the project directory
Step 2: Run this in cmd : python -c "import django; print(django.__path__)"
Step 3: Go to the path and copy django-admin.exe to the current project directory
Step 4: Run this in cmd : django-admin startproject DEMO
Happy Learning,
Thank you
Before you run django-admin.py startproject mysite
1) You need to create a virtual enviroment on the folder that you want to store your project
so run pipenv install django==2.1 (if you dont have pipenv installed run
pip install --user pipenv)
2) To run this virtual enviroment run pipenv shell
3)And finaly django-admin.py startproject mysite
Hope this works
In my case I made a mistake installing django in a wide system manner and then it created /usr/local/bin/django-admin I uninstalled django through pip but it doesn't remove those files then when you type the command it tries to invoke that file but as it says the module django is not present.
Just remove those orphans files (use sudo if needed)
sudo rm /usr/local/bin/django-admin
sudo rm /usr/local/bin/django-admin.py
and try again (with your virtualenv activated) and it should takes the right module and works as usual!
This is my solution:
step-1 --add environmental path
C:\Users\DELL\AppData\Local\Programs\Python\Python38
C:\Users\DELL\AppData\Local\Programs\Python\Python38\Scripts
step-2 pip install django
step-3 --run command in specific folder
django-admin.py startproject mysite
For me, a simple fix was reinstalling python. It turns out I didn't select add to path, when installing python the first time, and that is crucial.
if you are using windows then goto (search)"advanced system settings/Environment veriables/New path" and add path of your python packeges folder, in my case its "C:\python38\Lib\site-packages".
may be you have other path of site-packages folder.
If you are using Pycharm then after creating New project just go to the file-->setting-->project-->serch Django-->install Django then go to the terminal type django-admin startproject name(whichever you want) press enter
Run CMD as Administrator
pip3 install django
If you had this error occur on windows after installing django using pip that has the message along the following lines:
could not install packages due to an OSError: [WinError 2] The system
cannot find the file specified: 'c:\python39\Scripts\sqlformat.exe'
-> 'c:\python39\Scripts\sqlformat.exe.deleteme'
Which in turn causes the same problem as the question stated. A working solution is to clean installing django which you can do by using pip uninstall django, and then reinstalling it by running the install command like this: pip install --user django.
If no other warnings or errors occur, then it should be fixed. In case a warning sating that the django-admin.exe file is located at some location that needs to be added to the path variable, you can copy that path and add it to the path variable under your environment variable settings.
Quick fix guide:
Uninstall django: pip uninstall django.
Reinstall django: pip install --user django.
If a warning occurs containing a path continue to step 4 otherwise it should be fixed, and you may skip to the bottom.
Copy the path that should be added to the PATH environment variable.(the one specified in the warning)
Click on the start menu button.
Search for Control Panel and click on it.
Change the View by: option to Large icons.
Click on the System item.
Click on the Advance system settings button.
The System Properties window will open, proceed to click on the Environment Variables... button at the bottom right.
A new window will open displaying your Environment Variables, on the first gird select the row with the name of PATH or Path or path under the Variable column.
Then click the Edit button just below the grid.
A new window will open, proceed to click on the New button and paste the path you copied earlier.
After pasting press the Enter key and proceed to click on the OK button.
Once the window closes and you're back in the Environment Variables window proceed to do steps 11 to 14 again only with the grid at the bottom(inside the System Variables group).
Once all these steps were followed you may click on the OK button in the Environment Variables window and close out of all the other windows that are still open after you followed these steps.
Close your CMD window and open a new one (this allows it to recognize the changes you made to your environment variables).
After following these steps, you should be able to continue with what you were doing without having any other difficulties further regarding Django
I wasn't getting the django-admin to run even after an hour of configuring PATH etc. That was all completely useless.
What actually WORKED was running the windows terminal (cmd) as admin and then doing "pip install django". Be sure to first uninstall it though using "pip uninstall django", so that you get a clean installation.
Now django-admin runs perfect on cmd with or without admin rights.
I want to include a Django app into the project I'm working on. The app is hosted on Github ( https://github.com/lmorchard/django-badger ). As well as the app's directory containing the goodies, there are some files in the root - README, LICENCE, TODO and setup.py. If I clone the app into my project's root directory, the app folder will be in the correct place, but those root files will be in my project's root. How can I add the app while still tracking the upstream code in Github?
I had a similar issue where I was working on two independent projects where both were in a repo, and one of them used the other as an app:
Create a virtualenv and install all dependencies for both projects. I usually like to have a virtualenv for each project/repo but in this case you need one env which can execute Python from both repos.
Clone both repos to independent location. Do not clone the depending app inside the other project. Your file-structure then might look like this (assuming Django 1.3 project layout):
project/
manage.py
project/
__init__.py
settings.py
...
...
app/
README
...
app/
__init__.py
models.py
...
And final step is to create a symlink (or shortcut on Windows) from the app directory which has __init__.py in it to the project path.
$ ln -s /abs/path/to/app/app /abs/path/to/project/
Now you can use the virtualenv to run the project!
The final result is that you have two independent repos however one of projects is using the other project without directly copying the code, hence allowing you to maintain two repos.
U can install it by running
python setup.py
or through pip
sudo pip install -e git+https://github.com/lmorchard/django-badger#egg=django-badger
Clone the repository from github using git://github.com/lmorchard/django-badger.git. Then open the cloned folder in terminal. Install the app using the command sudo python setup.py install. This will work good. If you want to have the app included in your project, create a folder named badger(or anything you wish) and copy the installed app from dist-packages to created folder.