2016-05-07 144 views
11

我是一名初級軟件工程師,並且對Django來說相當新穎。我構建了this app,並且正在開發自述文件,以向其他人解釋如何在自己的機器上分叉,克隆和設置應用程序。我試圖重新創建步驟時陷入了困境。如何運行克隆的Django項目?

這是我已經制定的步驟的順序:

  1. 叉和克隆回購
  2. 源虛擬環境
  3. 皮普安裝requirements.txt
  4. 獲取和的access_token secret_key並存儲在secrets.sh中
  5. 設置Postgres DB,創建用戶&數據庫
  6. Migra te(?) - 這是我卡住的地方!

我嘗試遷移應用程序,但沒有適用的遷移。

我試過'django-admin startproject ig_miner_app。但我得到這個錯誤代碼:

「CommandError:/Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py已經存在,覆蓋項目或應用到現有的目錄不會取代衝突文件」

如果我能弄清楚這個問題,我應該可以正常運行服務器,對不對?

我確定我錯過了一些東西(或很多東西),但不知道它們是什麼。我覺得很愚蠢,因爲我顯然能夠首先創建應用程序,但無法弄清楚如何向其他人解釋如何做同樣的事情!有沒有關於如何讓服務器運行的建議?

謝謝!

+2

你爲什麼要運行'startproject'?你已經有一個項目!運行'manage.py migrate'時會出現什麼錯誤? – kaveh

+0

我剛剛跑過'startproject'因爲我想不出別的東西要試。這是我在運行'python manage.py migrate'時得到的錯誤:Traceback(最近一次調用最後一次): django.core.management中的文件「manage.py」,第8行, import execute_from_command_line ImportError:沒有名爲django.core.management的模塊 – allardbrain

+0

您是否激活了您的虛擬環境? – kaveh

回答

11

首先,你所得到的錯誤,因爲你開始的同一目錄中克隆的項目中的一個項目,這個目錄已經包含應用名稱爲ig_miner_app,因此名稱衝突。

至於其他用戶運行項目的步驟,這應該工作。

克隆項目

git clone https://github.com/erinallard/instagram_miner.git 

創建和啓動AA虛擬環境

virtualenv env --no-site-packages 

source env/bin/activate 

安裝項目的依賴:

pip install -r requirements.txt 

創建一個名爲 「secrets.sh」

文件

touch secrets.sh(mac和linux)

MiniWebTool密鑰中獲取祕密並添加到祕密中。SH

export SECRET_KEY='<secret_key>' 

附加secrets.sh到的.gitignore文件

創建一個Postgres數據庫,並添加憑據的settings.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'db_name', 
     'USER': 'name', 
     'PASSWORD': '', 
     'HOST': 'localhost', 
     'PORT': '', 
    } 
} 

然後運行

python manage.py migrate 

創建管理員帳號

python manage.py createsuperuser 

然後

python manage.py makemigrations ig_miner_app 

到makemigrations的應用

然後再次運行

python manage.py migrate 

啓動開發服務器

python manage.py runserver 

和開放本地主機:8000您瀏覽器來爭奪w應用程序。

我相信這應該讓應用程序在其他人的機器上運行。如果您遇到任何這些步驟,請告訴我,以便我進行編輯,如果沒有,則可以使用它並添加我可能未添加的任何其他相關信息。

+0

謝謝伯納!我從來沒有創建超級用戶!我現在要嘗試這個修復,並讓你知道它是如何發生的。 :-) – allardbrain

+0

謝謝,伯納德!有效!我非常感謝您的詳細幫助。 – allardbrain

+0

太棒了。任何時候!!! –

0

嘗試將應用程序名稱傳遞給migrate命令:

manage.py migrate ig_miner_app 
+0

這是我嘗試這樣做時得到的錯誤消息:Traceback(最近調用最後一次): django.core.management中的文件「manage.py」,第8行, import execute_from_command_line ImportError:No module名爲django.core.management – allardbrain

0

正如你所說,一旦你克隆回購,您必須安裝的要求

pip install -r requirements.txt 

之後,你必須配置數據庫。將詳細信息添加到settings.py

一旦完成並且您擁有密鑰和機密,您必須進行遷移然後進行遷移。

CD到應用程序目錄,然後運行

python manage.py makemigrations 

創建遷移文件中已克隆代碼已經定義的模型。之後,您必須運行

python manage.py migrate 

要應用實際上會創建數據庫表的遷移。

現在您對模型進行了任何更改或添加了額外的模型或字段,您必須再次運行最後兩個命令。

1

嘿@allardbrain,歡迎發展的奇妙世界^ _^

雖然我的希望是,這個問題已經被解決了,現在,如果可以的話,讓我們重溫真實的東西quick--我敢肯定其他人已經並且正在犯這個錯誤。

I tried 'django-admin startproject ig_miner_app . but am getting this error code:

「CommandError:」 內容非常重要yadda ...

的Django其實有着驚人的文檔。背後的人實際上是作家和記者,而不是你典型的CS人。

我想說的是,在學習新東西時,請閱讀文檔;運行「待辦事宜應用程序教程」。原因如下:

django-admin startproject 

如果您正在拉取預先存在的應用程序的工作副本,這已經得到滿足。您關注的應該是與這個文件首先...

requirements.txt 

這就是devDependencies說出自己的需求,如果你願意,類似於你的基本

package.json 

不管怎麼說,我只是之所以這樣說是因爲我的職業生涯頭幾年很頑固,經常抓住自己瀏覽文檔,並在一天結束時爲自己和那些可憐的混蛋負責監督我笨拙的屁股:-)這是一段美好的時光。 ..

Cheers Everyon e