摘要:下無權(quán)限使用訪問這篇文章的起因是,在公司的服務(wù)器上沒有權(quán)限,但是需要使用訪問,而不管是使用安裝組件還是安裝的,都需要相應(yīng)權(quán)限。本文即解決該問題。下載之后,進入某個有權(quán)限的目錄,假如是用戶的根目錄。如果可以的話,說明以及可以使用了。
Debian 下無 root 權(quán)限使用 Python 訪問 Oracle
使用 virtualenv這篇文章的起因是,在公司的服務(wù)器上沒有root權(quán)限,但是需要使用 Python 訪問 Oracle,而不管是使用 pip 安裝組件還是安裝 Oracle 的 client,都需要相應(yīng)權(quán)限。本文即解決該問題。
使用系統(tǒng)自帶 Python 和 pip 安裝組件時,默認會安裝到系統(tǒng)目錄下,需要 root 權(quán)限才能執(zhí)行寫操作。
不管是從資源隔離的角度,還是從繞過 root 的角度,你都需要一套順手的 Python 虛擬環(huán)境工具:virtualenv。
去求運維哥哥幫忙安裝 virtualenv 吧。順便說一句,pip 和 virtualenv 在 Debian 下都可以直接使用 apt-get 安裝,對應(yīng)的包分別是 python-pip 和 virtualevn。如果服務(wù)器上沒有的話,大膽地提供單吧。
關(guān)于 virtualenv,本文不再贅述,如有疑問,請移步我的另一篇文章《聊聊 virtualenv 和 virtualenvwrapper 實踐》。
有了 virtualenv,就可以建立自己的 Python 虛擬環(huán)境了,在虛擬環(huán)境中不需要任何 root 權(quán)限。之后的工作都是在虛擬中進行的。
安裝 cx_OraclePython 中訪問 Oracle 需要使用 cx_Oracle,此處直接使用 pip 安裝即可。
pip install cx_Oracle --pre
我碰到了一個安裝過程中提示找不到 Python.h 文件的,這說明系統(tǒng)中缺少 python-dev 包,是用 apt-get 裝的,同樣請運維幫裝上就行了。
安裝 instantclient只是安裝完 cx_Oracle,在 import 的時候會報找不到庫。還要再安裝一下 Oracle 官方的 instantclient。下載地址在這里,下載 Instant Client Package - Basic 即可。
下載之后,進入某個有權(quán)限的目錄,假如是用戶的根目錄 ~。將下載到的 zip 包解壓,例如到 ~/oracle/instantclient_12_2/ 目錄下。之后,需要添加環(huán)境變量讓系統(tǒng)能夠找到這些庫。在終端的 rc 文件里,例如 ~/.bashrc 末尾,添加環(huán)境變量如下。
export ORACLE_HOME=$HOME/oracle/instantclient_12_2 export LD_LIBRATY_PATH=$ORACLE_HOME:$LD_LIBRATY_PATH export PATH=$ORACLE_HOME:$PATH
此時,還需要額外做一件事情,就是建立 libclntsh.so 的軟鏈接。
ln -s libclntsh.so.12.1 libclntsh.so
做這件事情的原因是,cx_Oracle 需要使用庫文件 libclntsh.so,但是在解壓之后的 instantclient 中只包含帶有版本號的該庫文件,因此我們需要人工做一個軟鏈接,以供識別。
接下來,讓剛修改了環(huán)境變量的 rc 文件生效即可。
source ~/.bashrc
需要注意的是,在這次 source 之后,之前進入的虛擬環(huán)境將被退出。如果后面還需要繼續(xù)在虛擬環(huán)境里工作的話,需要再進入一次。
尾聲現(xiàn)在,理論上應(yīng)該可以在 Python 里正常 import cx_Oracle 了。如果可以的話,說明以及可以使用了。
如果不行的話,需要補充一些報錯中提到的包。我在測試過程中發(fā)現(xiàn)系統(tǒng)中缺少 libaio1 和 libaio-dev 兩個包。一并請運維裝上就好了。
Enjoy your work ~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40702.html
摘要:我就是一游客系統(tǒng)獲取我的信息拿到權(quán)限值動態(tài)加載路由通行不是。。我是權(quán)限汪等等我看看作者有沒有把你降級沒有好了。。你還是權(quán)限汪請進有滾吧你已經(jīng)不是權(quán)限汪了作者已經(jīng)把你寫成戰(zhàn)斗力只有的渣渣了沒有沒有還敢闖這里滾去關(guān)口沒錯,就這么簡單。 大體流程 參考資料: nx-admin項目地址 首先這里就不講解vue和vuex之類的基礎(chǔ)東西了 有興趣的可以去官方文檔了解。這里根據(jù)流程走向大概說說 路由...
閱讀 3348·2023-04-26 02:40
閱讀 4682·2021-09-22 15:22
閱讀 1649·2021-09-22 10:02
閱讀 3515·2021-08-11 10:23
閱讀 1416·2019-08-30 15:55
閱讀 2520·2019-08-30 12:48
閱讀 612·2019-08-30 11:04
閱讀 731·2019-08-29 16:29