PyQt database connection
Nümunəyə aşağıdakı github hesabında baxa bilərsiniz
Python Extension Programming with C
Bir çox Python paketləri(modulları) C və ya C++ dilləri ilə yazılır.Bu bəhsdə giriş üçün python paketi hazırlayacağıq.
İlk əvvəl iki fayl yaradaq first.c və setup.py
(terminaldan
$ touch first.c
$ touch setup.py
yolu ilə də yarada bilərik)
first.c faylını açırıq aşağıdakı kodları fayla əlavə edirik
Kodlara açıqlama verək.
Kökdən python.h faylını include edirik.Daha sonra istifadə olunacaq funksiyamızı hazırlayırıq
integer(PyObject* self, PyObject* args)
{
const int* input_integer;
double reg;
if (!PyArg_ParseTuple(args, “i”, &input_integer))
return NULL;
printf(color_blue “Output : %d\n”,input_integer);
Py_RETURN_NONE;
}
————————————————————————————————————
funksiyamız integer adı ilə istifadə olunacaq.tam ədədləri alacağından veriləni pointer olaraq aşağıdakı şəkildə ifadə edək.
const int* input_integer;
Funksiyanın alacağı dəyər integer olduğundan
if (!PyArg_ParseTuple(args, “i”, &input_integer))
“i” -ilə ifadə etdik(str üçün -s float üçün f olaraq yazılır)
istifadəçinin verdiyi integer dəyəri mavi rənglə çap edək.
printf(color_blue “Output : %d\n”,input_integer);
istifadə edəcəyimiz funksiyanın listəsini tərtib edək
static PyMethodDef show_funcs[] =
{
{“integer”,integer, METH_VARARGS, “”},
{NULL, NULL, 0, NULL}
};
və çağrılacaq funksiyalar üçün əsas predmeti show parametri ilə tərtib edək
PyMODINIT_FUNC
initshow(void)
{
(void) Py_InitModule(“show“, show_funcs);
}
setup.py faylına daxil oluruq
Yuxarıdakı kodları fayla əlavə etdikdən sonra yaddaşa veririk və ardından terminalı açırıq
terminaldan faylları açdığımız qovluğa daxil olub
xaos@techaz:~/Programlar/c/C_extension$ sudo python setup.py install yazırıq
Və paketimiz show adı ilə python2.7 qovluğu altına yerləşdi.
pythonu çağırırıq
paketə dir(show) ilə baxdıqda bir ədəd funksiyamız-integer olduğunu görürük.funksiyadan istifadə edək
Sonuncu veriləni string cinsində yazsaqda python bizə xəta olduğu məlumatını verdi.Biz integer funksiyasını yalnız tam ədədlər üçün tərtib etmişik
>> from show import*
>>> integer(12)
Output : 12
>>>>> integer(45+45)
Output : 90
>>>
Paketimizə string cinsi üçün funksiya əlavə edək
first.c faylına daxil olaraq kiçik dəyişikliklər edək
string(PyObject* self, PyObject* args)
{
const int* input_string;
if (!PyArg_ParseTuple(args, “s”, &input_string))
return NULL;
printf(color_green “Output : \n%s\n”,input_string);
Py_RETURN_NONE;
}
static PyMethodDef show_funcs[] =
{
{“integer”,integer, METH_VARARGS, “”},
{“string”,string, METH_VARARGS, “”},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initshow(void)
{
(void) Py_InitModule(“show”, show_funcs);
}
Bütövlükdə kodlarımız
#include <Python.h>
#define color_blue “\x1b[34m”
#define color_green “\x1b[32m”
static PyObject*
integer(PyObject* self, PyObject* args)
{
const int* input_integer;
if (!PyArg_ParseTuple(args, “i”, &input_integer))
return NULL;
printf(color_blue “Output : \n%d\n”,input_integer);
Py_RETURN_NONE;
}
string(PyObject* self, PyObject* args)
{
const int* input_string;
if (!PyArg_ParseTuple(args, “s”, &input_string))
return NULL;
printf(color_green “Output : \n%s\n”,input_string);
Py_RETURN_NONE;
}
static PyMethodDef show_funcs[] =
{
{“integer”,integer, METH_VARARGS, “”},
{“string”,string, METH_VARARGS, “”},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initshow(void)
{
(void) Py_InitModule(“show”, show_funcs);
}
Yaddaşa verib terminaldan
$ sudo python setup.py install
yazırıq
daha sonra python -u çağırırıq
>> import show
>>> dir(show)
[‘__doc__’, ‘__file__’, ‘__name__’, ‘__package__’, ‘integer’, ‘string’]
>>> from show import*
>>> string(“Salam Azerbaijan”)
Output :
Salam Azerbaijan
>>> string(“****”*12)
Output :
************************************************
>>> string(“Hello\n Azerbaijan”)
Output :
Hello
Azerbaijan
>>> string(“Hello \t\t\nAzerbaijan”)
Output :
Hello
Azerbaijan
>>> string(“Hello \t\t\Azerbaijan”)
Output :
Hello \Azerbaijan
>>> string(“Hello \vAzerbaijan”)
Output :
Hello
Azerbaijan
>>> integer(12)
Output :
12
>>> integer(12*12)
Output :
144
>>> print integer(12)
Output :
12
None
>>> print integer(12*12)
Output :
144
None
>>> print integer
<built-in function integer>
>>> i=144
>>> integer(i)
Output :
144
>>> i=”System”
>>> for v in i:
… string(v)
…
Output :
S
Output :
y
Output :
s
Output :
t
Output :
e
Output :
m
>>>
How to run Atmel Studio on Ubuntu
Proqramı yükləmək üçün ilk öncə sistemə wine yükləyirik
terminaldan
$ sudo apt-get install wine
$ wget http://www.kegel.com/wine/winetricks
$ bash winetricks
çağıraraqaşağıdakı ardıcıllıqla M.windows mühiti üçün bəzi komponentləri yükləyirik
Select the default wineprefix
OK
Install a Windows DLL or components
OK
açılmış pəncərədən aşağıdakı faylları seçib Ok düyməsini sıxırıq
comctl32
gdiplus
ie6
mdac27
mdac28
msls31
msxml3
pngfilt
vcrun2005
vcrun6sp6
vcrun6
wsh56vb
wsh57
xətasıs yüklədikdən sonra Atmel studio nu sistemə iki yolla yükləyə bilərik -Online(vebinstaller) offline( studio.exe)
Yüklədiyimiz proqramı
wine AvrStudio4Setup.exe terminala yazaraq və ya üzərində sağ düyməni basıb açılan pəncərədən run application vith wine seçirik.