Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

完善開發環境的文件 #33

Open
yellowsoar opened this issue Jun 18, 2019 · 11 comments
Open

完善開發環境的文件 #33

yellowsoar opened this issue Jun 18, 2019 · 11 comments

Comments

@yellowsoar
Copy link
Contributor

請填知道的部份就好,不用全部都填~

問題

這個問題是關於什麼?

開發環境中各種有版本的東西有部分沒有明確寫在文件中

重現問題的步驟

預期的結果

README 或開發環境安裝指南中會有完善的開發環境版本
例如 Postgresql 的版本

解法

治標

有什麼馬上可用,但不一定長久的解決方法嗎?
很遺憾,沒有。

治本

根本的解決方法是什麼?
補完文件

既有資料修正

這個問題和既有的資料有關嗎?修正的步驟是什麼?
寫在 README.md 應該就可以了?

@yellowsoar
Copy link
Contributor Author

後端與爬蟲的 Python 最低版本:

/backend
Minimum required versions: 3.4
Incompatible versions: 2

/crawler
Minimum required versions: 2.7, 3.2

接下來要測試會用到的 Python Package,
然後就可以得出最低需求的 Python 版本了,
不過我目前卡在 postgresql 的版本,
因為這會影響到 psycopg2-binary 的版本...

@yellowsoar
Copy link
Contributor Author

在這個環境中:
OS X 10.14.5 (18F132)
Postgresql 11.3
要改版本:
psycopg2-binary==2.7.5

不過我目前卡在 postgresql 的版本,
因為這會影響到 psycopg2-binary 的版本...

@ddio
Copy link
Contributor

ddio commented Jun 19, 2019

感謝測試!

身為作者,想直接請大家用 Python 3.5+ XD

因為之後要改去用 #31 寫的共用版本,有用到 3.5 才有的 typing ,而且我自己的環境是 3.5 ,所以寫 3.5+ 是沒問題的~

Pgsql 應該有完整支援 json 的就可以,所以 9.5 應該就可了,我的環境是跑 9.6
這邊有個問題是我一開始的設計沒有綁 Pgsql ,而是只要 GeoDjango 支援的都可以,爬蟲都可以運作,有 Pgsql 只是多了去重複物件的匯出功能,這部份 README 應該要寫得再清楚一點,我週末會更新這部份文件~

@yellowsoar
Copy link
Contributor Author

版本測試的工具是用 vermin 大概測一下

psycopg2-binary==2.7.4 安裝失敗的部分,
試了 9.5 10.x 11.x 都失敗,
$ pipenv install --verbose 後...
應該是不支援 python 3.7 造成的,
而不是 postgresql 版本的問題。
這個或許要寫進 README 當中?

另外考慮 3.7 是最新版本,
是否考慮把 psycopg2-binary 升到 2.7.5 ? @ddio

話說 3.6 f-string 不錯,可以少寫一點啊!XD

版本搞定之後可以來寫測試和 dockerfile 了~

@ddio
Copy link
Contributor

ddio commented Jun 21, 2019

感謝大大!這幾天在上課中,讓我下週來試試~

想說測試可以先從 scrapy-tw-rental-house 開始,因為那邊是最容易共用的部份。相依程度也小很多,只要 Scrapy 就好。

@ddio
Copy link
Contributor

ddio commented Jul 1, 2019

@yellowsoar , 為何又改了 XD 換成 3.6 沒問題,之後跟 dockerfile 一起加~

@yellowsoar
Copy link
Contributor Author

3.7.3 OK

只是安裝過程還有其他問題,要再跑一次安裝才能裝完,
我還沒研究 pipenv 的 log,不過先猜是相依性的問題,
畢竟 pip 對於 dependency 的判斷一直都... .... ...

另外 psycopg2 官方是在 2.8.3 才支援 3.7 以上
psycopg/psycopg2@61e6440

接下來 Pipfile.lock 和 Pipfile 應該要分流,
可以讓 Pipfile.lock 鎖在最低需求就好,
這個部分再來補進 README ...
然後應該就可以關掉這張卡了

至於這樣的手動測試,也只是個大概,要接 Travis 才比較理想,
不過這個應該是要另開一個 issue 了? @ddio

ddio added a commit that referenced this issue Aug 16, 2019
#33, Upgrade Scrapy to 1.6 so to run it on python 3.7.
@flier268
Copy link

使用Python 3.9.6安裝時遇到很多問題,像是cffi找不到1.11.5之類的
難道只能降版本到3.7嗎?

@flier268
Copy link

flier268 commented Jul 26, 2021

圖片
除了Python3.7以外,看起來還需要VC++?

@ddio
Copy link
Contributor

ddio commented Jul 26, 2021

@flier268 ,

看起來是 lxml.etree 在 windows 環境需要 build tools for visual studio ?我跟 windows 不熟,如果有找到合適的安裝步驟,歡迎協助發 PR ,感謝。

@flier268
Copy link

我後來嘗試使用Ubuntu 20.04 + Docker + Python3.7,但還是失敗了
順便說說我的發現,Python需要安裝Python3.7-dev,而不是Python3.7

因為這邊是用docker,所以不用sudo就是root了
先更新一下套件

apt update
apt upgrade

加入ppa

apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa

安裝python3.7

apt update
apt install python3.7-dev

備註:因為後面編譯需要用到src,所以請安裝dev版

正常的話到這邊就安裝玩python 3.7了
但是,只有這樣卻沒有安裝pip,所以後面一堆功能都不能用,因此我們還要安裝pip

apt install python3-pip

為了方便使用,把預設版本切換到3.7

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1

然後就可以順利執行這行指令了

pipenv install

安裝Django

pip install Django==3.2.5

但後面又繼續遇到問題,執行這行

python manage.py migrate

開始出現缺少lib的訊息
依照提示安裝

apt install libgdal-dev
pip install psycopg2

到這邊又繼續出現新問題了
圖片
因為我對這個實在不是很了解,所以只好上來求救了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants