Thứ Ba, 17 tháng 9, 2019

Đóng gói và cài đặt một module tạo mới cho Python

Khi nâng cấp lên dùng python 3, có trường hợp một số thư viện cũ ta dùng trong python 2 không có cho python 3. Khi đó, nếu có mã nguồn của thư viện này ta có thể chuyển chúng sang mã của python 3 với công cụ 2to3 (xem bài trước) rồi đóng gói và cài đặt module này để dùng.

Dưới đây lấy ví dụ gói jsonrpc với mã nguồn tải về tại đây để minh họa :
https://github.com/wheeler-microfluidics/application_repository.jsonrpc

Sau khi tải mã về, dùng công cụ 2to3 để chuyển mã rồi sửa lỗi nếu có. Ta sẽ đóng gói và cài đặt module này như sau

Ta đặt tên gói này là 'python3-jsonrpc'. Tạo và thay thế tập tin setup.py với nội dung như sau :

#!/usr/bin/env python

from distutils.core import setup

setup(name='python3-jsonrpc',
      version=0.1,
      description='A json-rpc package which implements JSON-RPC over HTTP.',
      keywords='JSON RPC',
      license='LGPL',
      packages=['jsonrpc'])


Đóng gói module này với lệnh

$ python3 setup.py sdist


Ta thấy gói python3-jsonrpc-0.1.tar.gz được tạo trong thư mục dist
Bây giờ ta có thể cài đặt gói này với lệnh :

$ sudo python3 -m pip install python3-jsonrpc-0.1.tar.gz

Nếu có lỗi
/usr/bin/python3: No module named pip 

Cài đặt pip3
$ sudo apt-get install python3-pip 


Nếu tiếp tục còn lỗi
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

Cài pip3 với lệnh sau
$ curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3


Kiểm tra gói vừa được cài đặt :

$ python3 -m pip list


Ta thấy trong danh sách hiển thị gói python3-jsonrpc

Nếu không dùng nữa, ta gỡ gói này ra ta với lệnh :

$ sudo python3 -m pip uninstall python3-jsonrpc


Không có nhận xét nào:

Đăng nhận xét