1. Ubuntu 版本與 Openshift 不合

  2. Openshift 的 cartridge 自訂?

版本不合

後來發現為何找不到 _slvs.so 的檔案了,因為 .gitignore 中包含了 *.so,而不會上傳這兩個檔案,註解掉就行了。

但是上傳後仍無法執行,回報的訊息為:

Traceback (most recent call last):
  File "/var/lib/openshift/57182def7628e1988e00002a/app-root/runtime/repo/wsgi.py", line 5, in 
    import myflaskapp
  File "/var/lib/openshift/57182def7628e1988e00002a/app-root/runtime/repo/myflaskapp.py", line 18, in 
    import users.b.g9.bg9_40323230
  File "/var/lib/openshift/57182def7628e1988e00002a/app-root/runtime/repo/users/b/g9/bg9_40323230.py", line 2, in 
    from slvs import *
  File "/var/lib/openshift/57182def7628e1988e00002a/app-root/runtime/repo/slvs.py", line 28, in 
    _slvs = swig_import_helper()
  File "/var/lib/openshift/57182def7628e1988e00002a/app-root/runtime/repo/slvs.py", line 24, in swig_import_helper
    _mod = imp.load_module('_slvs', fp, pathname, description)
  File "/opt/rh/python33/root/usr/lib64/python3.3/imp.py", line 183, in load_module
    return load_dynamic(name, filename, file)
ImportError: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory

看來開發時使用 Python 3.4 dev 會造成 Python 3.3 無法讀取。


Openshift custom cartridge

上網找了一下文章,找到有人問能不能建立其他版本的 cartridge。

http://stackoverflow.com/questions/34073473/openshift-custom-cartridge-with-python-3-4

而回應的是如果使用 s2i-python-container 這個工具,可以建立一個名為 Python 3.3 的其他版本 Python 鏡像檔,甚至有支援 Python 3.5。

https://github.com/sclorg/s2i-python-container

不過這個工具只能給 Fedora 類型的 Linux 作業系統使用,看起來是沒有 Debian 的版本。

要解決 Linux 相容的問題,Ubuntu 上可能要裝 3.3 版本的 Python 了,會先研究看看 Openshift 方可以安裝和執行的指令。

不知道如果其他 Ubuntu 沒安裝 Python-dev(或版本不同)的話能不能執行這些檔案。

Windows 的 Python 連結庫是自己做的,而非安裝 Python-dev,所以沒這個問題。


Comments

comments powered by Disqus