簡體   English   中英

錯誤:命令失敗,rc=65536 python 和 mod_wsgi

[英]Error: Command failed with rc=65536 python and mod_wsgi

我有這個問題:

我正在運行 pythonbrew 以獲得 python2.7,因此我重新編譯了 mod_wsgi 以使用 2.7 python。

為此,我遵循了本教程:

code.google.com/p/modwsgi/wiki/QuickInstallationGuide

其中涉及下載文件 - 我得到了一個 tar.gz 文件 - 然后使用./configure --with-python=/home/bharal/.pythonbrew/pythons/Python-2.7.2/bin/python --enable-shared “配置它” ./configure --with-python=/home/bharal/.pythonbrew/pythons/Python-2.7.2/bin/python --enable-shared

現在我假設這是為我的 python 附加的正確位置 - 上面的 with-python 的值只是我對which python的響應

好的,所以。 現在的問題是,在我運行上面的配置之后,我運行make並得到:

/usr/include/features.h:160:1: warning: this is the location of the previous definition
/usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static x86_64-linux-gnu-gcc -o mod_wsgi.la  -rpath /usr/lib/apache2/modules -module -avoid-version    mod_wsgi.lo -L/home/aiyer    /.pythonbrew/pythons/Python-2.7.2/lib -L/home/aiyer/.pythonbrew/pythons/Python-2.7.2/lib  /python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm
/usr/bin/ld: /home/bharal/.pythonbrew/pythons/Python-2.7.2/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/home/aiyer/.pythonbrew/pythons/Python-2.7.2/lib/libpython2.7.a: could not read symbols: Bad  value
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536

我不知道該怎么辦。 我發現這個答案是這樣的:

https://stackoverflow.com/a/6118155/1061426

但這對我沒有多大幫助——就我所能講述的一系列步驟而言,這還不夠,但更多的是一個值得思考的有趣花絮。

我運行了這個命令來檢查我是否有 python 64 位:

import sys
print maxint

如果 64 位 ==> 9223372036854775807 如果 32 位 ==> 2147483647

好的,所以我正在運行 64 位,因為我得到了更大的數字。 所以我在這里讀了這個 doco:

http://code.google.com/p/modwsgi/wiki/InstallationIssues#Mixing_32_Bit_And_64_Bit_Packages

因為我運行的是 64 位 python,這是否意味着我的問題不是這個:

這個錯誤被認為是由於使用的 Python 版本最初是為通用 X86 32 位架構編譯的,而 mod_wsgi 是為 X86 64 位架構編譯的。 在這種情況下會出現實際錯誤,因為“libtool”似乎無法從 X86 32 位靜態庫為 X86 64 位架構生成可動態加載的模塊。

而是這個?

或者,問題是由於此平台上的“libtool”無法在所有情況下從 X86 64 位靜態庫創建可加載模塊。

(以上引用來自以上鏈接)

如果這樣的話,我到底該怎么辦? 我完全不知道在這兩種情況下該怎么做——是的,我讀了那一頁的其余部分,但它也可能是用希臘語寫的(我不會說希臘語)。

有什么建議么?

更新:我從來沒有解決這個問題並最終使用了我的 ubuntu 附帶的 python - 與我的代碼運行的觀點沒有區別。

文件說:

如果是第一個問題,解決這個問題的唯一方法是為 X86 64 位架構重新編譯 Python。 執行此操作時,最好確保在編譯和安裝 Python 時為 Python 的“配置”腳本提供“--enable-shared”選項,並且實際上可能是必要的。

因此,您需要從源代碼重新安裝 Python,確保在運行“make”之前將“--enable-shared”選項提供給 Python 的“configure”命令。

如果“pythonbrew”不允許您這樣做,那么請告訴 pythonbrew 人員,他們構建具有共享庫支持的 Python 版本的方式可以說是錯誤的,並且會阻止許多嵌入式系統無法運行。

我自己在 Fedora 19 64 位上遇到過這個問題,我發現如果我同時安裝了 Python-devel 和 httpd-devel 包,mod_wsgi 會從源代碼編譯和安裝。

但是我沒有使用 pythonbrew。

我親愛的 Python 開發人員,我也遇到了同樣的錯誤,下面是我如何修復它的。 第一步是您將使用--enable-shared選項安裝 python。 接下來,請確保您已為 Apache 和 Python 安裝了開發依賴項。 sudo apt-get install apache2-devsudo apt-get install python3.8-dev 我使用的是 Python 3.8,所以我安裝python3.8-dev 您需要安裝與您的 python 版本相匹配的版本。

除此之外,閱讀這篇文章並嚴格按照此處給出的說明進行操作https://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html#apache-requirements

我只是跟着它並且能夠使其正常工作。

暫無
暫無

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

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