我在我的智慧在Solaris上python3到此爲止報告exec_prefix作爲/usr/lib
,而不是/usr
的Python 3 sys.exec_prefix錯誤
這是使用setup_tools和的virtualenv時導致的種種不良行爲,因爲他們正在尋找/usr/lib/lib/python3.4
的圖書館,這顯然是錯誤的。
我們已經在Solaris 11上同時安裝了python2和python3軟件包.Python2工作正常,而python3報告錯誤的exec_prefix。請看下圖:
bash-4.1$ env
TERM=xterm
PATH=/usr/bin:/bin:/usr/sbin:/sbin
PWD=/home/user
SHLVL=1
_=/usr/bin/env
bash-4.1$ type -a python3.4
python3.4 is /usr/bin/python3.4
python3.4 is /bin/python3.4
bash-4.1$ type -a python3.4-config
python3.4-config is /usr/bin/python3.4-config
python3.4-config is /bin/python3.4-config
bash-4.1$ python3.4-config --exec-prefix
/usr
bash-4.1$ python3.4 -c 'import sys; print(sys.path)'
['', '/usr/lib/python34.zip', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-sunos5', '/usr/lib/python3.4/lib-dynload/64', '/usr/lib/python3.4/site-packages', '/usr/lib/python3.4/vendor-packages']
bash-4.1$ python3.4 -c "import sys; print(sys.prefix, sys.exec_prefix)"
/usr /usr/lib
bash-4.1$ grep CONFIG_ARGS /usr/lib/python3.4/config-3.4m/Makefile
CONFIG_ARGS= 'CC=cc -m64 -xO4 -xtarget=ultra2 -xarch=sparcvis
-xchip=ultra2 -Qoption cg -xregs=no%appl -W2,-xwrap_int
-xmemalign=16i -mt -KPIC -DPIC -xO5 ' 'CXX=CC' '--prefix=/usr'
'--mandir=/usr/share/man' '--bindir=/usr/bin/sparcv9'
'--libdir=/usr/lib/sparcv9' '--sbindir=/usr/sbin/sparcv9'
'--infodir=/usr/share/info' '--enable-shared' '--with-dtrace'
'--with-system-expat'
'--with-system-ffi' '--without-gcc' '--without-ensurepip'
'--enable-ipv6' '--bindir=/usr/bin' 'CPPFLAGS=-IPython
-I/usr/include/ncurses -D_LARGEFILE64_SOURCE
-I/usr/lib/libffi-3.0.9/include ' 'LDFLAGS=-m64 -KPIC -DPIC
-xO5 ' 'CFLAGS=-m64 -xO4 -xtarget=ultra2 -xarch=sparcvis
-xchip=ultra2 -Qoption cg -xregs=no%appl -W2,-xwrap_int
-xmemalign=16i -mt -KPIC -DPIC -xO5 ' 'DFLAGS=-64'
'XPROFILE_DIR=../build/sparcv9/.profile'
我已經通過Python文檔,多個論壇和Q & A位,site.py看,甚至getpath.c本身。沒有什麼解釋這種行爲
如果我從源代碼構建python3,它可以正常工作。然而,這不是一種選擇,因爲我不是提供服務器的人,而且這個問題出現在我們希望保持一致的官方Solaris軟件包本身。
TL; DR - 爲什麼sys.exec_prefix報告的是/usr/lib
而不是/usr
?
聽起來像官方Solaris軟件包中的一個bug。你有這樣的報道嗎? –