Skip to main content

Buildout custom Python interpreter

Menggunakan Buildout, kita boleh generate custom Python interpreter khusus untuk kegunaan projek buildout ini dengan sys.path disetkan kepada eggs dalam projek ini. Berikut contoh buildout.cfg yang digunakan:-


[buildout]
newest = false
parts = pylons python
find-links = http://pylonshq.com/download/0.9.7
develop = .

[python]
recipe = zc.recipe.egg
interpreter = python

[pylons]
recipe = zc.recipe.egg
eggs =
nose>=0.11.1
Paste>=1.7.2
PasteScript>=1.7.3
PasteDeploy>=1.3.3
Pylons==0.9.7
SQLAlchemy==0.5.5
Jinja2==2.1.1


Tapi apabila run, dapat error:-


We have no distributions for python that satisfies 'python'.
Getting distribution for 'python'.
We have a develop egg: setuptools 0.6c9
Running easy_install:
/usr/bin/python "-c" "from setuptools.command.easy_install import main; main()" "-mUNxd" "/home/kamal/webapps/clinic-pylons/eggs/tmpflXKv-" "-q" "/usr/lib/python2.5/lib-dynload"
path=/usr/lib/python2.5/site-packages

error: Couldn't find a setup script in /usr/lib/python2.5/lib-dynload
An error occured when trying to install Python 2.5.2.Look above this message for any errors thatwere output by easy_install.
While:
Installing python.
Getting distribution for 'python'.
Error: Couldn't install: Python 2.5.2


Yang buat aku bengang adalah sebelum ini tidak apa-apa masalah, menggunakan komputer yang sama. Puas Google tapi tak jumpa sebarang penyelesaian. Nampak macam aku sorang je ada masalah ini.

Hari ini, bila tengok balik buildout.cfg tersebut dan bandingkan error message yang keluar, baru aku nampak kesilapannya.


[buildout]
parts = pylons python

[python]
recipe = zc.recipe.egg
interpreter = python


Deklarasi di atas bermaksud untuk install Python, bukannya generate custom interpreter untuk projek aku. Buildout rupanya, bila kita tak nyatakan egg yang hendak di'install', akan cuba download egg dengan nama 'part-name' yang mana dalam kes ini adalah Python.

Deklarasi yang betul adalah:-


[buildout]
newest = false
parts = pylons
find-links = http://pylonshq.com/download/0.9.7
develop = .

[pylons]
recipe = zc.recipe.egg
interpreter = python
eggs =
nose>=0.11.1
Paste>=1.7.2
PasteScript>=1.7.3
PasteDeploy>=1.3.3
Pylons==0.9.7
SQLAlchemy==0.5.5
Jinja2==2.1.1


Masukkan je option untuk interpreter dalam part 'pylons', tak perlu kepada part yang khusus untuk install interpreter.

Comments

Popular posts from this blog

PHP with docker

A friend asking about a PHP library and I decided to test whether that library is working. But I don't have PHP environment setup (we're Python shop btw). But thanks to docker, that's easy these days. docker run -it --tty --rm --volume $PWD:/app --user $(id -u):$(id -g) composer require google/apiclient:^2.0 Then we just need to create the script to run, still in the same directory:- include_once __DIR__ . '/vendor/autoload.php'; $GCSE_API_KEY = "nqwkoigrhe893utnih_gibberish_q2ihrgu9qjnr"; $GCSE_SEARCH_ENGINE_ID = "937592689593725455:msi299dkne4de"; $client = new Google_Client(); $client->setApplicationName("My_App"); $client->setDeveloperKey($GCSE_API_KEY); $service = new Google_Service_Customsearch($client); $optParams = array("cx"=>self::GCSE_SEARCH_ENGINE_ID); $results = $service->cse->listCse("lol cats", $optParams); And we can run that script again using docker:- docker run -it --...

Ubuntu 22.04 Wayland share screen

 After switching to Dell XPS 13 which running Ubuntu 22.04, I noticed that trying to share screen through Google Meet, it shows this:-    This - Use operating system settings, I never saw it before. Usually here we will be presented the windows that we want to share.  It turned out that screen sharing in Ubuntu 22.04 indeed an issue, due to the use of Wayland instead of Xorg as its display server. Many suggested to disable wayland and back to use Xorg. I try to avoid that since Wayland seems to works fine so far. After some searching, the conclusion seems we can make this working by installing some packages. sudo apt install xdg-desktop-portal xdg-desktop-portal-gnome But it turned out that I have already installed the packages! So what were the problems?  Well, turn out it's more psychological than technical. Since the pop up is different than what I'm used to before, I never click the allow button. But clicking the allow button we will see this:-   Which...

The rise of localhost

I noticed a pattern in dex world, where you build client backend to participate in the network, and then build a web app that simply connect to  localhost:someport  for the UI. To check my scuttlebutt updates, I opened up http://localhost:8027/. For those using Ethereum Parity wallet, they can open it at http://localhost:8180/. ZeroNet users are browsing at http://localhost:43110/. But Parity for example, try to make it seamless, they still provide a dns - web3.site which then redirected to home.web3.site which simply resolved to 127.0.0.1. But this I think bring up some problem, especially non-tech user which think that Parity is a website hosted by Parity Technologies. I seen this in a some articles about the latest bug .