簡體   English   中英

無法為第二版Python安裝MySQLdb

[英]Trouble installing MySQLdb for second version of Python

上下文:我正在Ubuntu服務器上處理一些Python腳本。 我需要使用一些用Python 2.7編寫的代碼,但我們的服務器有Python 2.5。 我們安裝了2.7作為Python的第二個實例,所以我們不會破壞任何依賴於2.5的東西。 現在我需要安裝MySQLdb包。 我假設我不能通過運行apt-get install python-mysqldb因為它可能只是重新安裝到python 2.5,所以我只是想手動安裝它。

問題:在MySQL-python-1.2.3目錄中,我嘗試運行python2.7 setup.py build並得到一個錯誤,指出:

sh:/etc/mysql/my.cnf:權限被拒絕

以及一個說明setup.py無法找到該文件的Traceback。

請注意,setup.py腳本默認在$ PATH目錄中查找mysql_config文件,但我們服務器的mysql配置文件是/etc/mysql/my.cnf ,所以我更改了包的site.cfg文件以匹配。 我檢查了文件的權限,即-rw-r - r--。 我嘗試以root身份運行腳本並得到相同的錯誤。

有什么建議么?

據我所知,“mysql_config”和“my.cnf”之間存在非常顯着的差異。

  • “mysql_config”通常位於MySQL安裝的“bin”文件夾中,執行時會吐出有關安裝的各種文件系統位置信息。

  • “my.cnf”是MySQL自己使用的配置腳本。

簡而言之,當腳本要求“mysql_config”時,它應該用字面意思是名稱為“mysql_config”的可執行文件,而不是您要提供的文本配置文件。 MYSQLdb需要“mysql_config”文件,以便它知道要使用哪些庫。 而已。 它不直接讀取您的MySQL配置。

您遇到的錯誤可以歸結為;

  1. 它試圖打開錯誤的文件並遇到權限問題。

  2. 即使它試圖打開該文件后,仍然無法找到“mysql_config”文件。

從這里,您需要找到MySQL安裝的“bin”文件夾,並檢查它是否包含“mysql_config”。 然后你可以編輯文件夾路徑到“site.cnf”文件,你應該很高興去。

您確定該文件在構建過程的其他部分中沒有硬編碼嗎? 為什么不在構建期間將它添加到$ PATH?

腳本是否因某種原因需要寫入該文件? 構建腳本是否使用su或sudo來嘗試成為其他用戶? 您是否完全確定權限以及以root身份運行腳本的事實?

如果你仍然無法做到這一點,這真的很奇怪。 你在使用chroot還是virtualenv?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM