Project Installation

Version 321 (Etienne Pallier, 01/12/2018 04:05 pm)

1 1 Etienne Pallier
h1. Project Installation
2 1 Etienne Pallier
3 270 Etienne Pallier
This page describes the installation phase of the Pyros software.
4 1 Etienne Pallier
5 314 Etienne Pallier
If you want access to the ETC-IS-VC software, go to this page : https://projects.irap.omp.eu/projects/gft-etc-is/wiki
6 189 Etienne Pallier
7 11 Etienne Pallier
Project Development page : [[Project Development]]
8 11 Etienne Pallier
9 6 Etienne Pallier
HOWTO Format Redmine Wiki : http://www.redmine.org/projects/redmine/wiki/FrRedmineWikiFormatting
10 6 Etienne Pallier
11 193 Etienne Pallier
{{toc}}
12 6 Etienne Pallier
13 6 Etienne Pallier
14 3 Etienne Pallier
---
15 3 Etienne Pallier
16 170 Etienne Pallier
---
17 170 Etienne Pallier
18 221 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}DATABASE SCHEMA (v0.2.2)%
19 4 Etienne Pallier
20 4 Etienne Pallier
21 222 Etienne Pallier
{{thumbnail(PYROS_DBM_V0_2_2.png, size=2000, title=Pyros data model)}}
22 4 Etienne Pallier
23 4 Etienne Pallier
24 4 Etienne Pallier
---
25 5 Etienne Pallier
26 170 Etienne Pallier
---
27 170 Etienne Pallier
28 226 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}COMPATIBLE PLATFORMS (TESTED)%
29 226 Etienne Pallier
30 253 Jeremy Barneron
This software is targetted first for Linux CentOS 7 (+ Fedora and Ubuntu), but also for Mac OS X and Windows.
31 231 Etienne Pallier
All these systems should run Python 3 (3.5+)
32 226 Etienne Pallier
33 227 Etienne Pallier
Pyros has been tested on these platforms:
34 226 Etienne Pallier
35 232 Etienne Pallier
* CentOS 7.1 (with Python 3.4)
36 235 Paul Carensac
* Linux Mint 17.2 ( == Ubuntu 14.04.3) (with Python 3.5)
37 254 Jeremy Barneron
* Ubuntu 16.04 (with python 3.5.2)
38 232 Etienne Pallier
* Mac OS 10.11.6 (with Python 3.5)
39 232 Etienne Pallier
* Windows 10 (with Python 3.5)
40 226 Etienne Pallier
41 287 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}I - GET THE PYROS SOFTWARE%
42 5 Etienne Pallier
43 274 Etienne Pallier
h3. A. Authenticate to the gitlab
44 125 Etienne Pallier
45 273 Etienne Pallier
In order to get this software, you must first authenticate on the IRAP gitlab https://gitlab.irap.omp.eu/epallier/pyros
46 125 Etienne Pallier
47 125 Etienne Pallier
For this, just go to https://gitlab.irap.omp.eu/epallier/pyros
48 125 Etienne Pallier
and either sign in with your LDAP account (if you are from IRAP),
49 125 Etienne Pallier
or register via the "Sign up" form.
50 5 Etienne Pallier
51 279 Etienne Pallier
---
52 279 Etienne Pallier
53 315 Etienne Pallier
h3. B. Get the software
54 1 Etienne Pallier
55 114 Etienne Pallier
56 1 Etienne Pallier
* *DYNAMIC VERSION (Developers) : Get a dynamic version (synchronized) :*
57 203 Paul Carensac
58 321 Etienne Pallier
_If do not want to contribute to this project but just want to try it, you can download a STATIC version of it : go to next section "STATIC VERSION"_
59 321 Etienne Pallier
60 277 Etienne Pallier
_Windows users : you first need to get the GIT software (see below, section E)_
61 122 Etienne Pallier
62 114 Etienne Pallier
By getting the software from git, you will get a dynamically synchronized version,
63 114 Etienne Pallier
which means that you will be able to update your version as soon as a new version is available
64 114 Etienne Pallier
(with the command : "git pull").
65 111 Etienne Pallier
66 283 Etienne Pallier
_From Eclipse : See below, section "NOTES FOR ECLIPSE USERS"_
67 111 Etienne Pallier
68 283 Etienne Pallier
From the terminal :
69 5 Etienne Pallier
70 5 Etienne Pallier
<pre>
71 5 Etienne Pallier
git clone https://gitlab.irap.omp.eu/epallier/pyros.git PYROS
72 1 Etienne Pallier
</pre>
73 86 Etienne Pallier
74 86 Etienne Pallier
_(or also : git clone git@gitlab.irap.omp.eu:epallier/pyros.git PYROS)_
75 5 Etienne Pallier
76 5 Etienne Pallier
If you ever get this error message :
77 1 Etienne Pallier
<pre>
78 1 Etienne Pallier
fatal: unable to access 'https://gitlab.irap.omp.eu/epallier/pyros.git/': Peer's certificate issuer has been marked as not trusted by the user.
79 1 Etienne Pallier
</pre>
80 1 Etienne Pallier
81 1 Etienne Pallier
Then, type this command (and then run again the git clone command):
82 1 Etienne Pallier
<pre>
83 1 Etienne Pallier
$ git config --global http.sslVerify false
84 1 Etienne Pallier
</pre>
85 1 Etienne Pallier
86 1 Etienne Pallier
(Also, the first time you get the project, it will ask you for a login and password)
87 1 Etienne Pallier
88 1 Etienne Pallier
This creates a PYROS/ folder containing the project (with a .git/ subfolder for synchronization with the git repository)
89 1 Etienne Pallier
90 321 Etienne Pallier
91 321 Etienne Pallier
92 321 Etienne Pallier
93 321 Etienne Pallier
* *STATIC VERSION (Non developers) : Download a static version (not synchronized) :*
94 321 Etienne Pallier
95 321 Etienne Pallier
Go to https://gitlab.irap.omp.eu/epallier/pyros/tree/master
96 321 Etienne Pallier
97 321 Etienne Pallier
Click on "Download zip" on the up right hand corner.
98 321 Etienne Pallier
99 321 Etienne Pallier
Double-click on it to unzip it.
100 321 Etienne Pallier
101 321 Etienne Pallier
You should get a "pyros.git" folder.
102 321 Etienne Pallier
103 321 Etienne Pallier
In this documentation, this software folder will be referenced as "PYROS".
104 321 Etienne Pallier
105 321 Etienne Pallier
(you can rename "pyros.git" as "PYROS" if you want : "mv pyros.git PYROS")
106 279 Etienne Pallier
---
107 273 Etienne Pallier
108 315 Etienne Pallier
h3. C. For WINDOWS users
109 273 Etienne Pallier
110 273 Etienne Pallier
 * Download git at https://git-scm.com/download/win
111 273 Etienne Pallier
 * Run setup (keep default configurations)
112 273 Etienne Pallier
 * Once installed, open cmd
113 273 Etienne Pallier
<pre>
114 273 Etienne Pallier
$ git config --global http.sslVerify false
115 273 Etienne Pallier
</pre>
116 273 Etienne Pallier
117 1 Etienne Pallier
You can now use your git from the cmd or the graphic client !
118 287 Etienne Pallier
119 287 Etienne Pallier
120 287 Etienne Pallier
---
121 317 Etienne Pallier
122 318 Etienne Pallier
h3. D. Miscellaneous
123 1 Etienne Pallier
124 318 Etienne Pallier
You can browse the code from gitlab :
125 318 Etienne Pallier
126 1 Etienne Pallier
https://gitlab.irap.omp.eu/epallier/pyros/tree/master
127 1 Etienne Pallier
128 318 Etienne Pallier
More information about the project structure :
129 316 Etienne Pallier
130 318 Etienne Pallier
See [[Project_structure|Project Structure]] page
131 316 Etienne Pallier
132 290 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}II - INSTALLATION OF PREREQUISITES%
133 287 Etienne Pallier
134 287 Etienne Pallier
Pyros needs some prerequisites : 
135 1 Etienne Pallier
136 319 Etienne Pallier
* Python 3.5+ (3.6 recommended)
137 287 Etienne Pallier
* RabbitMQ
138 287 Etienne Pallier
* [optional] a Mysql Database server (but you can use Sqlite instead, with no installation)
139 287 Etienne Pallier
140 287 Etienne Pallier
141 287 Etienne Pallier
---
142 287 Etienne Pallier
143 289 Etienne Pallier
h3. A. Install Python3 (3.5+) + pip
144 1 Etienne Pallier
145 288 Etienne Pallier
@todo: remplacer virtualenv par le module python "venv" (utilisation: python3 -m venv nom_du_venv) : https://docs.python.org/3/library/venv.html
146 288 Etienne Pallier
147 287 Etienne Pallier
_If Python 3 is already installed on your computer, skip this section_
148 287 Etienne Pallier
149 287 Etienne Pallier
150 287 Etienne Pallier
 * Linux (CentOS 7.1, main target): (python35 not yet available as rpm)
151 287 Etienne Pallier
<pre>
152 287 Etienne Pallier
$ sudo yum update yum
153 287 Etienne Pallier
$ sudo yum update kernel
154 287 Etienne Pallier
$ sudo yum update
155 311 Quentin Durand
$ sudo yum update
156 310 Quentin Durand
$ sudo yum install yum-utils
157 310 Quentin Durand
$ sudo yum groupinstall development
158 310 Quentin Durand
$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
159 1 Etienne Pallier
$ sudo yum install python34
160 310 Quentin Durand
161 287 Etienne Pallier
$ python3.4 -V
162 287 Etienne Pallier
Python 3.4.3
163 287 Etienne Pallier
164 287 Etienne Pallier
$ sudo yum install python34-devel
165 287 Etienne Pallier
(needed for python package mysqlclient)
166 1 Etienne Pallier
167 310 Quentin Durand
((
168 310 Quentin Durand
NO MORE NECESSARY:
169 287 Etienne Pallier
$ sudo yum update python-setuptools
170 287 Etienne Pallier
$ easy_install --version 
171 287 Etienne Pallier
setuptools 0.9.8
172 287 Etienne Pallier
$ sudo easy_install pip
173 1 Etienne Pallier
$ pip --version
174 288 Etienne Pallier
pip 8.1.1 from /usr/lib/python2.7/site-packages/pip-8.1.1-py2.7.egg (python 2.7)
175 288 Etienne Pallier
176 288 Etienne Pallier
$ sudo pip install --upgrade pip
177 287 Etienne Pallier
$ sudo pip install --upgrade virtualenv
178 287 Etienne Pallier
$ virtualenv --version
179 1 Etienne Pallier
15.0.1
180 288 Etienne Pallier
))
181 287 Etienne Pallier
182 287 Etienne Pallier
Necessary for "lxml" python package:
183 287 Etienne Pallier
$ sudo yum install libxml2 libxml2-devel
184 287 Etienne Pallier
$ sudo yum install libxslt libxslt-devel
185 287 Etienne Pallier
186 309 Quentin Durand
187 287 Etienne Pallier
</pre>
188 287 Etienne Pallier
189 287 Etienne Pallier
190 287 Etienne Pallier
 * Linux (Ubuntu) :
191 287 Etienne Pallier
<pre>
192 287 Etienne Pallier
$ sudo add-apt-repository ppa:fkrull/deadsnakes
193 287 Etienne Pallier
$ sudo apt-get update
194 287 Etienne Pallier
$ sudo apt-get install python3.5
195 301 Quentin Durand
$ sudo apt-get install python3.5-dev
196 301 Quentin Durand
(needed for python package mysqlclient && lxml)
197 287 Etienne Pallier
$ sudo apt-get install libxml2-dev
198 287 Etienne Pallier
$ sudo apt-get install libxslt-dev
199 309 Quentin Durand
$ sudo apt-get install zlib1g-dev can be required too
200 287 Etienne Pallier
$ sudo apt-get install python-pip
201 308 Quentin Durand
$ sudo apt-get install python-lxml
202 287 Etienne Pallier
203 1 Etienne Pallier
204 288 Etienne Pallier
((
205 288 Etienne Pallier
NO MORE NECESSARY
206 1 Etienne Pallier
$ sudo pip install --upgrade virtualenv
207 288 Etienne Pallier
))
208 287 Etienne Pallier
</pre>
209 287 Etienne Pallier
210 287 Etienne Pallier
211 287 Etienne Pallier
 * Mac OS X :
212 287 Etienne Pallier
213 287 Etienne Pallier
  * From binary (Mac OS native application)
214 287 Etienne Pallier
(TODO:)
215 287 Etienne Pallier
216 287 Etienne Pallier
  * From MacPort
217 287 Etienne Pallier
218 287 Etienne Pallier
   * a) install macport
219 287 Etienne Pallier
cf https://www.macports.org/install.php
220 287 Etienne Pallier
221 287 Etienne Pallier
   * b) install the "port" python36
222 287 Etienne Pallier
<pre>
223 287 Etienne Pallier
$ sudo port install python36
224 287 Etienne Pallier
$ sudo port select --set python3 python36
225 287 Etienne Pallier
$ sudo port install py36-readline
226 287 Etienne Pallier
$ sudo port install py36-pip
227 287 Etienne Pallier
$ port select --set pip pip36
228 287 Etienne Pallier
</pre>
229 287 Etienne Pallier
230 287 Etienne Pallier
231 287 Etienne Pallier
 * Windows (tested with Windows 7 & 10) :
232 287 Etienne Pallier
<pre>
233 287 Etienne Pallier
Go to https://www.python.org/downloads/windows/ , choose the wanted version
234 287 Etienne Pallier
On the wanted version’s page, download Windows x86 executable installer
235 287 Etienne Pallier
236 287 Etienne Pallier
Run the executable
237 287 Etienne Pallier
    * On the first page, check "Add python3.5 to PATH"
238 287 Etienne Pallier
    * Choose "Install now" option
239 287 Etienne Pallier
240 287 Etienne Pallier
Open cmd (windows + R, cmd) :
241 1 Etienne Pallier
 $ python -m pip install --upgrade pip
242 288 Etienne Pallier
((
243 288 Etienne Pallier
NO MORE NECESSARY
244 1 Etienne Pallier
 $ pip install virtualenv
245 288 Etienne Pallier
))
246 287 Etienne Pallier
</pre>
247 287 Etienne Pallier
248 1 Etienne Pallier
---
249 287 Etienne Pallier
250 289 Etienne Pallier
h3. B. Install a database server (only if necessary)
251 287 Etienne Pallier
252 287 Etienne Pallier
_If the MySql database server is already installed on your computer, skip this section_
253 287 Etienne Pallier
254 287 Etienne Pallier
By default, Pyros uses Mysql, but this implies that you have to install the Mysql database server...
255 287 Etienne Pallier
256 287 Etienne Pallier
Thus, to make things easier, avoid Mysql installation by using Sqlite instead as the database server (which will need no installation at all) :
257 287 Etienne Pallier
258 287 Etienne Pallier
=> *For this, just edit the file PYROS/src/pyros/settings.py and set MYSQL variable to False, and that's it. You can go to next section*
259 287 Etienne Pallier
260 287 Etienne Pallier
Now, if you really want to use Mysql (which is the default), you will need to install it (only if not already installed), so keep reading.
261 287 Etienne Pallier
262 287 Etienne Pallier
_(Skip this if you are using Sqlite instead of MySql)_
263 287 Etienne Pallier
264 287 Etienne Pallier
 * Linux Ubuntu
265 287 Etienne Pallier
<pre>
266 287 Etienne Pallier
First, update your system:
267 287 Etienne Pallier
$ sudo apt-get update
268 287 Etienne Pallier
269 287 Etienne Pallier
$ sudo apt-get install mysql-server
270 287 Etienne Pallier
$ sudo apt-get install mysql-client
271 287 Etienne Pallier
272 287 Etienne Pallier
$ sudo apt-get install libmysqlclient-dev
273 287 Etienne Pallier
(needed for python package mysqlclient)
274 287 Etienne Pallier
</pre>
275 287 Etienne Pallier
276 287 Etienne Pallier
 * Linux CentOS : cf https://www.howtoforge.com/apache_php_mysql_on_centos_7_lamp#-installing-mysql-
277 287 Etienne Pallier
<pre>
278 287 Etienne Pallier
First, update your system:
279 287 Etienne Pallier
$ sudo yum update yum
280 287 Etienne Pallier
$ sudo yum update kernel
281 287 Etienne Pallier
$ sudo yum update
282 287 Etienne Pallier
283 287 Etienne Pallier
$ sudo yum install mariadb-server 
284 287 Etienne Pallier
$ sudo yum install mariadb
285 287 Etienne Pallier
286 287 Etienne Pallier
$ sudo yum install mariadb-devel
287 287 Etienne Pallier
(needed for python package mysqlclient)
288 287 Etienne Pallier
289 287 Etienne Pallier
$ sudo systemctl start mariadb.service
290 287 Etienne Pallier
291 287 Etienne Pallier
$ sudo systemctl enable mariadb.service
292 287 Etienne Pallier
=> Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
293 287 Etienne Pallier
294 287 Etienne Pallier
$ sudo mysql_secure_installation
295 287 Etienne Pallier
</pre>
296 287 Etienne Pallier
297 287 Etienne Pallier
 * Mac OS X
298 287 Etienne Pallier
Install XAMPP
299 287 Etienne Pallier
(but you could also use the pre-installed Mac OS MySql, or install MySql from macport)
300 287 Etienne Pallier
cf https://www.apachefriends.org/fr/index.html
301 287 Etienne Pallier
302 287 Etienne Pallier
303 287 Etienne Pallier
 * Windows (tested with Windows 7 & 10)
304 287 Etienne Pallier
305 287 Etienne Pallier
<pre>
306 287 Etienne Pallier
Download and install the newest version on https://dev.mysql.com/downloads/installer/
307 287 Etienne Pallier
308 287 Etienne Pallier
Once installed, launch MySQL Installer. Clic on 'Add...' on the right.
309 287 Etienne Pallier
In MySQLServers section, choose the newest, then clic on next.
310 287 Etienne Pallier
Install and configure the server (just follow the installation guide).
311 287 Etienne Pallier
312 287 Etienne Pallier
Then launch mysql (via the Windows menu).
313 287 Etienne Pallier
</pre>
314 287 Etienne Pallier
315 1 Etienne Pallier
316 287 Etienne Pallier
---
317 287 Etienne Pallier
318 289 Etienne Pallier
h3. C. Install RabbitMQ
319 287 Etienne Pallier
320 287 Etienne Pallier
RabbitMQ is a message queue server used by Celery to handle tasks queues.
321 287 Etienne Pallier
It uses the amqp protocol to manage queue messages.
322 287 Etienne Pallier
323 287 Etienne Pallier
 * Ubuntu (the server is automatically started) :
324 287 Etienne Pallier
<pre>
325 287 Etienne Pallier
$ sudo apt-get install rabbitmq-server
326 287 Etienne Pallier
327 287 Etienne Pallier
Get status:
328 287 Etienne Pallier
$ sudo invoke-rc.d rabbitmq-server status
329 287 Etienne Pallier
330 287 Etienne Pallier
Stop:
331 287 Etienne Pallier
$ sudo invoke-rc.d rabbitmq-server stop
332 287 Etienne Pallier
333 287 Etienne Pallier
Start:
334 287 Etienne Pallier
$ sudo invoke-rc.d rabbitmq-server start
335 287 Etienne Pallier
336 287 Etienne Pallier
</pre>
337 287 Etienne Pallier
338 287 Etienne Pallier
339 287 Etienne Pallier
340 287 Etienne Pallier
 * CentOS :
341 287 Etienne Pallier
<pre>
342 287 Etienne Pallier
$ sudo yum install rabbitmq-server
343 287 Etienne Pallier
344 287 Etienne Pallier
Installation :
345 287 Etienne Pallier
 rabbitmq-server                                                           noarch                          3.3.5-17.el7
346 287 Etienne Pallier
Installation pour dépendances :
347 287 Etienne Pallier
 erlang-asn1                                                               x86_64                          R16B-03.16.el7
348 287 Etienne Pallier
349 287 Etienne Pallier
Get status:
350 287 Etienne Pallier
(CentOS7) $ sudo rabbitmqctl status
351 287 Etienne Pallier
(older CentOS) $ sudo /sbin/service rabbitmq-server status
352 287 Etienne Pallier
353 287 Etienne Pallier
Stop:
354 287 Etienne Pallier
(CentOS7) $ sudo systemctl stop rabbitmq-server
355 287 Etienne Pallier
(older CentOS) $ sudo /sbin/service rabbitmq-server stop
356 287 Etienne Pallier
357 287 Etienne Pallier
Start:
358 287 Etienne Pallier
(CentOS7) $ sudo systemctl start rabbitmq-server
359 287 Etienne Pallier
(older CentOS) $ sudo /sbin/service rabbitmq-server start
360 287 Etienne Pallier
</pre>
361 287 Etienne Pallier
362 287 Etienne Pallier
 * MacOS :
363 287 Etienne Pallier
<pre>
364 287 Etienne Pallier
With MacPort:
365 287 Etienne Pallier
$ sudo port install rabbitmq-server
366 287 Etienne Pallier
--->  Installing erlang @18.2.1_1+hipe+ssl
367 287 Etienne Pallier
...
368 287 Etienne Pallier
--->  Installing rabbitmq-server @3.5.7_0
369 287 Etienne Pallier
--->  Activating rabbitmq-server @3.5.7_0
370 287 Etienne Pallier
...
371 287 Etienne Pallier
372 287 Etienne Pallier
To start rabbitmq : 
373 287 Etienne Pallier
$ sudo rabbitmq-server
374 287 Etienne Pallier
375 287 Etienne Pallier
Get status:
376 287 Etienne Pallier
$ sudo rabbitmqctl status
377 287 Etienne Pallier
378 287 Etienne Pallier
To stop rabbitmq : 
379 287 Etienne Pallier
$ sudo rabbitmqctl stop
380 287 Etienne Pallier
</pre>
381 287 Etienne Pallier
382 287 Etienne Pallier
383 287 Etienne Pallier
384 287 Etienne Pallier
 * Windows :
385 287 Etienne Pallier
386 287 Etienne Pallier
  * Take the wanted Erlang version at http://www.erlang.org/downloads and install it (required)
387 287 Etienne Pallier
  * Take the wanted RabbitMQ version at https://www.rabbitmq.com/install-windows.html and install it. Then the server will run automatically
388 287 Etienne Pallier
389 169 Etienne Pallier
390 169 Etienne Pallier
391 169 Etienne Pallier
---
392 169 Etienne Pallier
393 291 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}III - INSTALLATION OF NEEDED PYTHON PACKAGES%
394 166 Etienne Pallier
395 293 Etienne Pallier
h3. A. Install all the needed python packages and the PyROS database (within a Python virtual environment)
396 293 Etienne Pallier
397 186 Paul Carensac
---
398 1 Etienne Pallier
399 293 Etienne Pallier
*@todo: remplacer virtualenv par le module python "venv" (utilisation: python3 -m venv nom_du_venv) : https://docs.python.org/3/library/venv.html*
400 293 Etienne Pallier
Eviter l'installation de virtualenv car ca oblige a executer le script install.py avec sudo !!!*
401 293 Etienne Pallier
=> en faire plutot un pré-requis (comme python3 et mysql).
402 293 Etienne Pallier
=> ou bien essayer cette nouvelle syntaxe (qui remplace avantageusement virtualenv) :
403 293 Etienne Pallier
  python3 -m venv venv_py3_pyros
404 1 Etienne Pallier
405 293 Etienne Pallier
406 293 Etienne Pallier
---
407 293 Etienne Pallier
408 293 Etienne Pallier
Go into the PYROS/install/ folder and Run the install.py script with the parameter install.
409 293 Etienne Pallier
410 293 Etienne Pallier
(You will be prompted to enter a username, an email, and a password for the superuser)
411 293 Etienne Pallier
412 1 Etienne Pallier
<pre>
413 312 Quentin Durand
python3 install.py install //new simpler version ==> test_install.py
414 293 Etienne Pallier
</pre>
415 293 Etienne Pallier
416 293 Etienne Pallier
417 293 Etienne Pallier
*TODO: update "create user if exists" => does not work with mysql 5.6 (only with 5.7)*
418 293 Etienne Pallier
419 293 Etienne Pallier
NB: you might need to drop your pyros database (and pyros_test ?) before running the install script (if migrations are too big)
420 293 Etienne Pallier
421 293 Etienne Pallier
_If something goes wrong, install manually each package (see section "MANUAL INSTALLATION OF PYTHON PACKAGES, ONE BY ONE")_
422 293 Etienne Pallier
423 293 Etienne Pallier
424 293 Etienne Pallier
425 293 Etienne Pallier
---
426 293 Etienne Pallier
427 293 Etienne Pallier
h3. B. Install the Comet python package 
428 293 Etienne Pallier
429 295 Etienne Pallier
Latest info on this package : http://comet.transientskp.org/en/stable/
430 294 Etienne Pallier
431 190 Paul Carensac
Comet is needed as a broker to receive and send VOEvents (https://github.com/jdswinbank/Comet/tree/py3)
432 291 Etienne Pallier
*You MUST have your virtualenv activated (source venv_py3_pyros/bin/activate in your 'private/' directory)*
433 190 Paul Carensac
Documentation is available here : http://comet.readthedocs.io/en/stable/installation.html
434 267 Etienne Pallier
(see also http://voevent.readthedocs.io/en/latest/setup.html)
435 1 Etienne Pallier
436 297 Etienne Pallier
437 298 Etienne Pallier
1) Essayer d'abord la méthode automatique (avec pip) :
438 297 Etienne Pallier
439 297 Etienne Pallier
$ source private/venv_py3_pyros/bin/activate
440 297 Etienne Pallier
$ pip install comet
441 297 Etienne Pallier
442 1 Etienne Pallier
443 297 Etienne Pallier
444 298 Etienne Pallier
2) Si ça ne marche pas, essayer la méthode manuelle (download puis install) :
445 298 Etienne Pallier
446 292 Etienne Pallier
* Ubuntu :
447 265 Etienne Pallier
448 291 Etienne Pallier
<pre>
449 1 Etienne Pallier
# You can do this anywhere on your computer
450 291 Etienne Pallier
$ git clone https://github.com/jdswinbank/Comet.git
451 266 Etienne Pallier
$ cd Comet
452 190 Paul Carensac
$ (sudo ?) python setup.py install
453 190 Paul Carensac
$ sudo apt-get install python-lxml
454 256 Jeremy Barneron
455 190 Paul Carensac
</pre>
456 256 Jeremy Barneron
457 1 Etienne Pallier
458 267 Etienne Pallier
* MacOS :
459 190 Paul Carensac
<pre>
460 1 Etienne Pallier
Idem Ubuntu
461 1 Etienne Pallier
</pre>
462 1 Etienne Pallier
463 1 Etienne Pallier
* Windows :
464 1 Etienne Pallier
<pre>
465 1 Etienne Pallier
TODO:
466 1 Etienne Pallier
</pre>
467 298 Etienne Pallier
468 298 Etienne Pallier
469 298 Etienne Pallier
470 298 Etienne Pallier
3) Test Comet
471 298 Etienne Pallier
472 298 Etienne Pallier
$ twistd comet --help
473 298 Etienne Pallier
$ trial comet
474 298 Etienne Pallier
475 298 Etienne Pallier
All tests should pass
476 298 Etienne Pallier
477 9 Etienne Pallier
478 9 Etienne Pallier
---
479 9 Etienne Pallier
480 300 Etienne Pallier
h3. C. (Eclipse only) Set the Python3 virtual environment as the project interpreter
481 300 Etienne Pallier
482 300 Etienne Pallier
See below, in section "NOTES FOR ECLIPSE USERS"
483 300 Etienne Pallier
484 300 Etienne Pallier
---
485 300 Etienne Pallier
486 17 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}IV - TEST%
487 17 Etienne Pallier
488 108 Etienne Pallier
489 90 Etienne Pallier
(Tests are classes declared in all apps' test.py file. The test classes inherit from django.test.TestCase)
490 17 Etienne Pallier
491 17 Etienne Pallier
You can run the tests suite, just to be sure that the software is well installed.
492 17 Etienne Pallier
493 19 Etienne Pallier
h3. From Terminal
494 19 Etienne Pallier
495 19 Etienne Pallier
496 1 Etienne Pallier
<pre>
497 1 Etienne Pallier
498 219 Paul Carensac
$ cd PYROS/
499 94 Etienne Pallier
500 243 Etienne Pallier
Be sure that at least unit tests pass:
501 257 Jeremy Barneron
$ python3 pyros.py unittest
502 243 Etienne Pallier
503 302 Quentin Durand
If the tests don't pass because of mysql try:
504 302 Quentin Durand
$ python3  pyros.py updatedb
505 302 Quentin Durand
506 243 Etienne Pallier
If unit tests pass, then run ALL tests:
507 257 Jeremy Barneron
$ python3 pyros.py test_all
508 242 Etienne Pallier
509 242 Etienne Pallier
NB: if tests do not pass, be sure that Rabbitmq is launched:
510 242 Etienne Pallier
To start rabbitmq on MacOS : 
511 242 Etienne Pallier
$ sudo rabbitmq-server
512 242 Etienne Pallier
513 17 Etienne Pallier
</pre>
514 19 Etienne Pallier
515 160 Paul Carensac
h3. From Eclipse
516 1 Etienne Pallier
517 216 Etienne Pallier
Right-clic on the project / Django / Run Django tests
518 1 Etienne Pallier
519 216 Etienne Pallier
(for more information, see below, in section "NOTES FOR ECLIPSE USERS")
520 25 Paul Carensac
521 160 Paul Carensac
h3. Custom commands
522 27 Paul Carensac
523 25 Paul Carensac
$ [./manage.py] test app.tests                           # Run tests for the application 'app'
524 25 Paul Carensac
$ [./manage.py] test app.tests.ModelTests                # Run test methods declared in the class app.tests.ModelTests
525 25 Paul Carensac
$ [./manage.py] test app.tests.ModelTests.test_method    # Only run the method test_method declared in app.tests.ModelTests
526 33 Etienne Pallier
527 33 Etienne Pallier
528 1 Etienne Pallier
---
529 1 Etienne Pallier
530 170 Etienne Pallier
---
531 170 Etienne Pallier
532 92 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}V - RUN%
533 75 Etienne Pallier
534 109 Etienne Pallier
535 223 Etienne Pallier
Before launching Pyros, check that all the pre-requisites are running :
536 223 Etienne Pallier
537 223 Etienne Pallier
 * RabbitMQ: 
538 223 Etienne Pallier
<pre>
539 223 Etienne Pallier
$ systemctl status rabbitmq-server
540 223 Etienne Pallier
541 223 Etienne Pallier
If inactive, start it:
542 223 Etienne Pallier
$ sudo systemctl start rabbitmq-server
543 223 Etienne Pallier
544 224 Etienne Pallier
(To stop it, use "stop" instead of "start")
545 223 Etienne Pallier
546 223 Etienne Pallier
</pre>
547 223 Etienne Pallier
548 223 Etienne Pallier
 * Mysql (only if you are not using Sqlite):
549 225 Etienne Pallier
<pre>
550 306 Quentin Durand
$ systemctl status (mysqld or mysql in function of the one you're using)
551 225 Etienne Pallier
552 225 Etienne Pallier
If inactive, start it:
553 306 Quentin Durand
$ sudo systemctl start (mysqld or mysql in function of the one you're using)
554 225 Etienne Pallier
555 225 Etienne Pallier
(To stop it, use "stop" instead of "start")
556 225 Etienne Pallier
</pre>
557 223 Etienne Pallier
558 75 Etienne Pallier
* From the terminal
559 75 Etienne Pallier
560 75 Etienne Pallier
<pre>
561 75 Etienne Pallier
562 95 Etienne Pallier
$ cd PYROS/
563 1 Etienne Pallier
564 307 Quentin Durand
$ first start the server with "python manage.py runserver YOUR_IP_ADDRESS:8000" if you want to access the website from another pc with http://YOUR_IP_ADDRESS:8000) (from within a virtual env, and from src/)
565 217 Etienne Pallier
566 307 Quentin Durand
$ then launch pyros : python3 pyros.py start 
567 217 Etienne Pallier
568 307 Quentin Durand
#obsolète(To check that this service is actually running, type "$ netstat -an |grep 8000" and you should get "tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN")
569 217 Etienne Pallier
570 93 Paul Carensac
</pre>
571 75 Etienne Pallier
572 158 Paul Carensac
Now, go to "http://localhost:8000/admin" in your browser
573 91 Etienne Pallier
574 158 Paul Carensac
(and login as "pyros" with the password 'DjangoPyros')
575 105 Etienne Pallier
576 91 Etienne Pallier
(Ctrl-c to stop)
577 91 Etienne Pallier
578 91 Etienne Pallier
579 75 Etienne Pallier
580 106 Etienne Pallier
* From Eclipse : see below, in section "NOTES FOR ECLIPSE USERS"
581 75 Etienne Pallier
582 75 Etienne Pallier
583 1 Etienne Pallier
---
584 1 Etienne Pallier
585 170 Etienne Pallier
---
586 170 Etienne Pallier
587 33 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}NOTES FOR ECLIPSE USERS%
588 35 Etienne Pallier
589 35 Etienne Pallier
0) Install Eclipse (if necessary)
590 35 Etienne Pallier
591 35 Etienne Pallier
Get the Eclipse version for Php
592 35 Etienne Pallier
593 35 Etienne Pallier
Install the plug-in pydev (via install new software, add http://pydev.org/updates)
594 35 Etienne Pallier
595 35 Etienne Pallier
Install the django template editor (via install new software, add http://eclipse.kacprzak.org/updates)
596 35 Etienne Pallier
597 35 Etienne Pallier
1) Deactivate CA certificate verification
598 35 Etienne Pallier
599 35 Etienne Pallier
Window -> Preferences -> Team -> git -> configuration -> Add entry
600 35 Etienne Pallier
601 35 Etienne Pallier
Key = http.sslVerify
602 35 Etienne Pallier
Value = false
603 35 Etienne Pallier
604 35 Etienne Pallier
2) Fetch the project
605 35 Etienne Pallier
606 35 Etienne Pallier
File/Import project from git
607 35 Etienne Pallier
608 35 Etienne Pallier
Select repository source: Clone URI: https://gitlab.irap.omp.eu/epallier/pyros.git
609 35 Etienne Pallier
610 35 Etienne Pallier
Directory: 
611 35 Etienne Pallier
par défaut, il propose : /Users/epallier/git/pyros
612 35 Etienne Pallier
mais on peut le mettre ailleurs (c'est ce que j'ai fait)
613 35 Etienne Pallier
614 35 Etienne Pallier
initial branch: master
615 35 Etienne Pallier
remote name: origin
616 35 Etienne Pallier
617 35 Etienne Pallier
Import as general project
618 35 Etienne Pallier
619 35 Etienne Pallier
Project name: PYROS
620 35 Etienne Pallier
621 35 Etienne Pallier
622 35 Etienne Pallier
3) Configure the project
623 35 Etienne Pallier
624 35 Etienne Pallier
The project is created. Now, you have to set it as a «PyDev » and a « Django » project.
625 35 Etienne Pallier
626 35 Etienne Pallier
clic droit sur le projet / PyDev / set as a PyDev project
627 35 Etienne Pallier
628 35 Etienne Pallier
clic droit sur le projet / PyDev / set as a Django project
629 35 Etienne Pallier
630 35 Etienne Pallier
clic droit sur le projet : on doit maintenant avoir un sous-menu Django
631 35 Etienne Pallier
632 35 Etienne Pallier
clic droit sur le dossier src / PyDev / set as source folder (add to PYTHONPATH)
633 35 Etienne Pallier
634 35 Etienne Pallier
clic droit sur projet / Properties / Pydev-Django :
635 215 Etienne Pallier
  - *Django manage.py : src/manage.py*
636 215 Etienne Pallier
  - *Django settings module : pyros.settings*
637 35 Etienne Pallier
638 35 Etienne Pallier
639 35 Etienne Pallier
4) Set Code style
640 35 Etienne Pallier
641 35 Etienne Pallier
Window/Preferences : Pydev / Editor
642 35 Etienne Pallier
- Auto Imports : uncheck « Do auto import »
643 35 Etienne Pallier
- Code style:
644 35 Etienne Pallier
	- Locals … : camelCase
645 35 Etienne Pallier
	- Methods : camelCase() with first lower
646 35 Etienne Pallier
- Code style / Code Formatter: activer « use autopep8.py for code formatting »
647 35 Etienne Pallier
- Tabs : Tab length : 4
648 35 Etienne Pallier
649 67 Etienne Pallier
5) Now, once the Python3 virtual environment is installed (see above),
650 66 Etienne Pallier
set it in Eclipse as the project interpreter:
651 66 Etienne Pallier
652 68 Etienne Pallier
Right clic on the project / Properties / PyDev - Interpreter/Grammar :
653 66 Etienne Pallier
Grammar version : 3
654 66 Etienne Pallier
655 66 Etienne Pallier
Interpreter : click on « click here to configure an interpreter not listed »
656 66 Etienne Pallier
657 66 Etienne Pallier
click on « New... » :
658 66 Etienne Pallier
- Interpreter name : venv_py35_pyros
659 66 Etienne Pallier
- Interpreter executable : click on « Browse »
660 66 Etienne Pallier
	Select your virtualenv python35 executable (private/venv_py35_pyros/bin/python3.5)
661 66 Etienne Pallier
	click OK
662 66 Etienne Pallier
663 66 Etienne Pallier
*Now, a last thing to do so that Pydev finds Django:*
664 66 Etienne Pallier
665 66 Etienne Pallier
In the Python interpreters list, select your virtual env (venv_py35_pyros)
666 66 Etienne Pallier
667 66 Etienne Pallier
Click on the tab "Libraries"
668 66 Etienne Pallier
669 66 Etienne Pallier
clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder
670 66 Etienne Pallier
671 66 Etienne Pallier
OK
672 66 Etienne Pallier
673 66 Etienne Pallier
Interpreter: select now venv_py35_pyros from the list
674 66 Etienne Pallier
675 66 Etienne Pallier
OK
676 62 Etienne Pallier
677 78 Etienne Pallier
6) Test
678 1 Etienne Pallier
679 78 Etienne Pallier
* Right-clic on the project / Django / Run Django tests
680 78 Etienne Pallier
681 78 Etienne Pallier
* Right-clic on the project / Django / Custom command / ...
682 78 Etienne Pallier
683 78 Etienne Pallier
684 78 Etienne Pallier
7) Run
685 70 Etienne Pallier
686 70 Etienne Pallier
Right clic on project -> Django/Custom command/runserver
687 70 Etienne Pallier
688 70 Etienne Pallier
Error on Ubuntu :
689 70 Etienne Pallier
690 70 Etienne Pallier
<pre>
691 70 Etienne Pallier
692 70 Etienne Pallier
Traceback (most recent call last):
693 70 Etienne Pallier
  File "/home/carens_p/git/pyros/src/manage.py", line 8, in <module>
694 70 Etienne Pallier
    from django.core.management import execute_from_command_line
695 70 Etienne Pallier
ImportError: No module named 'django'
696 70 Etienne Pallier
697 70 Etienne Pallier
</pre>
698 70 Etienne Pallier
699 70 Etienne Pallier
Project -> Properties -> Pydev interpreter -> Clic here to configure an interpreter not listed
700 70 Etienne Pallier
701 70 Etienne Pallier
select venv_py35_pyros
702 70 Etienne Pallier
703 70 Etienne Pallier
In Libraries, clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder.
704 70 Etienne Pallier
705 70 Etienne Pallier
OK -> re-select venv_py35_pyros in 'Interpreter' dropdown menu
706 70 Etienne Pallier
707 70 Etienne Pallier
Then right clic on project -> Django/Custom command/runserver
708 70 Etienne Pallier
709 70 Etienne Pallier
check http://localhost:8000/
710 70 Etienne Pallier
711 70 Etienne Pallier
712 62 Etienne Pallier
---
713 62 Etienne Pallier
714 62 Etienne Pallier
---
715 62 Etienne Pallier
716 250 Jeremy Barneron
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}NOTES FOR PYCHARM USERS%
717 250 Jeremy Barneron
718 250 Jeremy Barneron
1) Install Pycharm
719 250 Jeremy Barneron
720 251 Jeremy Barneron
2) import pyros project
721 251 Jeremy Barneron
722 252 Jeremy Barneron
3) Mark the src directory and simulators directory as source root directories
723 250 Jeremy Barneron
724 252 Jeremy Barneron
4) Go in file -> settings (CTRL + ALT + S) -> Project : Pyros -> Project Interpreter
725 258 Jeremy Barneron
   Add an interpreter which is the one from your virtual environment : Add Local -> find the python 3 binary in your virtualenv
726 250 Jeremy Barneron
727 303 Quentin Durand
5) 
728 304 Quentin Durand
    +For professional version :+
729 304 Quentin Durand
     Go in Language & Frameworks -> Django and set the django project root / Settings (pyros/settings.py) / Manage script
730 304 Quentin Durand
    +For community edition :+
731 305 Quentin Durand
     First: Go to edit configuration (top right corner)
732 304 Quentin Durand
     Second: Click on the (+) mark in top-left corner and add python configuration.
733 304 Quentin Durand
     Third: Click on the Script, and for django select the manage.py which resides on the project directory.
734 304 Quentin Durand
     Fourth: Add <your command> as Scripts parameter and click apply : you normally should be able to run your project
735 250 Jeremy Barneron
736 250 Jeremy Barneron
---
737 250 Jeremy Barneron
738 250 Jeremy Barneron
---
739 250 Jeremy Barneron
740 81 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}MANUAL INSTALLATION OF PYTHON PACKAGES ONE BY ONE%
741 81 Etienne Pallier
742 172 Etienne Pallier
*Follow these steps only if the previous guided and nearly automatic installation did not work for you*
743 100 Etienne Pallier
744 172 Etienne Pallier
745 174 Etienne Pallier
h3. (Only if using Mysql) Create the database "pyros" and the pyros user
746 174 Etienne Pallier
747 174 Etienne Pallier
Only if you are using Mysql, you need to create an empty database "pyros"
748 174 Etienne Pallier
(which will be filled automatically by django)
749 174 Etienne Pallier
750 174 Etienne Pallier
<pre>
751 174 Etienne Pallier
$ mysql -u root -p
752 174 Etienne Pallier
(enter your root password)
753 174 Etienne Pallier
754 174 Etienne Pallier
$ mysql> create database if not exists pyros;
755 174 Etienne Pallier
</pre>
756 174 Etienne Pallier
757 174 Etienne Pallier
The user creation depends on your MySQL version :
758 174 Etienne Pallier
759 174 Etienne Pallier
 * 5.7 and above :
760 174 Etienne Pallier
<pre>
761 174 Etienne Pallier
$ mysql> DROP USER IF EXISTS pyros;
762 174 Etienne Pallier
$ mysql> CREATE USER 'pyros' IDENTIFIED BY 'DjangoPyros';
763 174 Etienne Pallier
$ mysql> GRANT ALL PRIVILEGES ON pyros.* TO pyros;
764 174 Etienne Pallier
</pre>
765 174 Etienne Pallier
766 174 Etienne Pallier
 * under 5.7 :
767 174 Etienne Pallier
<pre>
768 174 Etienne Pallier
$ mysql> GRANT USAGE ON *.* TO 'pyros';
769 174 Etienne Pallier
$ mysql> DROP USER 'pyros';
770 174 Etienne Pallier
$ mysql> CREATE USER 'pyros' IDENTIFIED BY 'DjangoPyros';
771 174 Etienne Pallier
$ mysql> GRANT ALL PRIVILEGES ON pyros.* TO pyros;
772 174 Etienne Pallier
</pre>
773 174 Etienne Pallier
774 174 Etienne Pallier
If none of these solution work, check on the internet to create a user named pyros with the password DjangoPyros.
775 174 Etienne Pallier
776 100 Etienne Pallier
h3. Create a Python3 virtual environment dedicated to the project (inside the project folder)
777 100 Etienne Pallier
778 100 Etienne Pallier
<pre>
779 100 Etienne Pallier
780 100 Etienne Pallier
$ mkdir private/
781 100 Etienne Pallier
782 100 Etienne Pallier
$ cd private/
783 100 Etienne Pallier
784 100 Etienne Pallier
$ which python3.5 ("where python" for windows)
785 100 Etienne Pallier
/opt/local/bin/python3.5
786 100 Etienne Pallier
787 313 Quentin Durand
$ python3 -m venv_py35_pyros -p /opt/local/bin/python3.5 ou py instead of python3 on windows 
788 100 Etienne Pallier
=> creates a venv_py35_pyros/ folder inside PYROS/private/
789 100 Etienne Pallier
790 100 Etienne Pallier
</pre>
791 100 Etienne Pallier
792 100 Etienne Pallier
793 100 Etienne Pallier
---
794 100 Etienne Pallier
795 100 Etienne Pallier
h3. Activate the python virtual environment (from inside the project)
796 100 Etienne Pallier
797 100 Etienne Pallier
<pre>
798 100 Etienne Pallier
799 100 Etienne Pallier
$ pwd
800 100 Etienne Pallier
.../PYROS/private
801 100 Etienne Pallier
802 100 Etienne Pallier
$ source ./venv_py35_pyros/bin/activate (venv_py35_pyros/Scripts/activate on Windows)
803 100 Etienne Pallier
804 100 Etienne Pallier
</pre>
805 100 Etienne Pallier
806 100 Etienne Pallier
---
807 100 Etienne Pallier
808 100 Etienne Pallier
h3. Install needed python packages
809 100 Etienne Pallier
810 81 Etienne Pallier
Check that the virtual environment is activated
811 81 Etienne Pallier
<pre>
812 81 Etienne Pallier
$ python -V
813 81 Etienne Pallier
Python 3...
814 81 Etienne Pallier
815 81 Etienne Pallier
$ which pip
816 81 Etienne Pallier
.../PYROS/venv_py35_pyros/bin/pip
817 81 Etienne Pallier
</pre>
818 81 Etienne Pallier
819 81 Etienne Pallier
820 81 Etienne Pallier
Upgrade pip to last version available:
821 81 Etienne Pallier
<pre>
822 81 Etienne Pallier
$ pip install --upgrade pip
823 81 Etienne Pallier
Collecting pip
824 81 Etienne Pallier
  Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
825 81 Etienne Pallier
Installing collected packages: pip
826 81 Etienne Pallier
  Found existing installation: pip 7.1.2
827 81 Etienne Pallier
    Uninstalling pip-7.1.2:
828 81 Etienne Pallier
      Successfully uninstalled pip-7.1.2
829 81 Etienne Pallier
Successfully installed pip-8.1.1
830 81 Etienne Pallier
831 81 Etienne Pallier
Upgrade wheel to last version available:
832 81 Etienne Pallier
$ pip install --upgrade wheel
833 81 Etienne Pallier
Collecting wheel
834 81 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
835 81 Etienne Pallier
Installing collected packages: wheel
836 81 Etienne Pallier
  Found existing installation: wheel 0.24.0
837 81 Etienne Pallier
    Uninstalling wheel-0.24.0:
838 81 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
839 81 Etienne Pallier
Successfully installed wheel-0.29.0
840 81 Etienne Pallier
841 81 Etienne Pallier
</pre>
842 81 Etienne Pallier
843 81 Etienne Pallier
Go into the install/ folder:
844 81 Etienne Pallier
<pre>
845 81 Etienne Pallier
$ cd .../PYROS/install/
846 81 Etienne Pallier
</pre>
847 81 Etienne Pallier
848 84 Etienne Pallier
Install all the needed python packages at once:
849 85 Etienne Pallier
<pre>
850 1 Etienne Pallier
$ pip install -r REQUIREMENTS.txt
851 85 Etienne Pallier
</pre>
852 84 Etienne Pallier
853 84 Etienne Pallier
If something goes wrong, install them one by one:
854 62 Etienne Pallier
855 62 Etienne Pallier
  * *Install Django* :
856 62 Etienne Pallier
<pre>
857 62 Etienne Pallier
$ pip install django
858 62 Etienne Pallier
Collecting django
859 62 Etienne Pallier
  Downloading Django-1.9.4-py2.py3-none-any.whl (6.6MB)
860 62 Etienne Pallier
Installing collected packages: django
861 62 Etienne Pallier
Successfully installed django-1.9.4
862 62 Etienne Pallier
863 62 Etienne Pallier
$ pip install django-admin-tools
864 62 Etienne Pallier
Collecting django-admin-tools
865 62 Etienne Pallier
  Downloading django_admin_tools-0.7.2-py2.py3-none-any.whl (289kB)
866 62 Etienne Pallier
Installing collected packages: django-admin-tools
867 62 Etienne Pallier
Successfully installed django-admin-tools-0.7.2
868 62 Etienne Pallier
869 62 Etienne Pallier
$ pip install django-debug-toolbar
870 62 Etienne Pallier
Collecting django-debug-toolbar
871 62 Etienne Pallier
  Downloading django_debug_toolbar-1.4-py2.py3-none-any.whl (212kB)
872 62 Etienne Pallier
Requirement already satisfied (use --upgrade to upgrade): Django>=1.7 in ./venv_py35_pyros/lib/python3.5/site-packages (from django-debug-toolbar)
873 62 Etienne Pallier
Collecting sqlparse (from django-debug-toolbar)
874 62 Etienne Pallier
  Downloading sqlparse-0.1.19.tar.gz (58kB)
875 62 Etienne Pallier
Building wheels for collected packages: sqlparse
876 62 Etienne Pallier
  Running setup.py bdist_wheel for sqlparse ... done
877 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/7b/d4/72/6011bb100dd5fc213164e4bbee13d4e03261dd54ce6a5de6b8
878 62 Etienne Pallier
Successfully built sqlparse
879 62 Etienne Pallier
Installing collected packages: sqlparse, django-debug-toolbar
880 62 Etienne Pallier
Successfully installed django-debug-toolbar-1.4 sqlparse-0.1.19
881 62 Etienne Pallier
882 62 Etienne Pallier
$ pip install django-extensions
883 62 Etienne Pallier
Collecting django-extensions
884 62 Etienne Pallier
  Downloading django_extensions-1.6.1-py2.py3-none-any.whl (202kB)
885 62 Etienne Pallier
Collecting six>=1.2 (from django-extensions)
886 62 Etienne Pallier
  Downloading six-1.10.0-py2.py3-none-any.whl
887 62 Etienne Pallier
Installing collected packages: six, django-extensions
888 62 Etienne Pallier
Successfully installed django-extensions-1.6.1 six-1.10.0
889 62 Etienne Pallier
890 62 Etienne Pallier
$ pip install django-suit
891 62 Etienne Pallier
Collecting django-suit
892 62 Etienne Pallier
  Downloading django-suit-0.2.18.tar.gz (587kB)
893 62 Etienne Pallier
Building wheels for collected packages: django-suit
894 62 Etienne Pallier
  Running setup.py bdist_wheel for django-suit ... done
895 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/12/8b/9a/e02ab0ad9229881638aa040d47d77c8f562999533811927d41
896 62 Etienne Pallier
Successfully built django-suit
897 62 Etienne Pallier
Installing collected packages: django-suit
898 62 Etienne Pallier
Successfully installed django-suit-0.2.18
899 62 Etienne Pallier
900 62 Etienne Pallier
</pre>
901 62 Etienne Pallier
902 62 Etienne Pallier
  * *Install the django boostrap css package* :
903 62 Etienne Pallier
<pre>
904 62 Etienne Pallier
$ pip install django-bootstrap3
905 62 Etienne Pallier
</pre>
906 62 Etienne Pallier
(==> 'bootstrap3' is then to be added as an application in settings.py -> INSTALLED_APPS)
907 62 Etienne Pallier
908 62 Etienne Pallier
  * *Install the web application server gunicorn (will be used in production instead of the dev django web server)* :
909 62 Etienne Pallier
<pre>
910 62 Etienne Pallier
$ pip install gunicorn
911 62 Etienne Pallier
Collecting gunicorn
912 62 Etienne Pallier
  Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
913 62 Etienne Pallier
Installing collected packages: gunicorn
914 62 Etienne Pallier
Successfully installed gunicorn-19.4.5
915 62 Etienne Pallier
</pre>
916 62 Etienne Pallier
917 62 Etienne Pallier
  * *Install the python mysql client* (not needed if you want to use sqlite):
918 62 Etienne Pallier
<pre>
919 62 Etienne Pallier
$ pip install mysqlclient
920 62 Etienne Pallier
...
921 62 Etienne Pallier
</pre>
922 62 Etienne Pallier
923 146 Etienne Pallier
   * => If issue under Mac OS X:
924 62 Etienne Pallier
<pre>
925 62 Etienne Pallier
$ pip install mysqlclient
926 62 Etienne Pallier
Collecting mysqlclient
927 62 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
928 62 Etienne Pallier
Building wheels for collected packages: mysqlclient
929 62 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
930 62 Etienne Pallier
931 62 Etienne Pallier
  ----------------------------------------
932 62 Etienne Pallier
  Failed building wheel for mysqlclient
933 62 Etienne Pallier
  Running setup.py clean for mysqlclient
934 62 Etienne Pallier
Failed to build mysqlclient
935 62 Etienne Pallier
Installing collected packages: mysqlclient
936 62 Etienne Pallier
  Running setup.py install for mysqlclient ... done
937 62 Etienne Pallier
Successfully installed mysqlclient-1.3.7
938 62 Etienne Pallier
939 62 Etienne Pallier
BOUH !!!
940 1 Etienne Pallier
941 152 Etienne Pallier
=> Need to upgrade wheel:
942 146 Etienne Pallier
943 62 Etienne Pallier
$ pip install --upgrade wheel
944 62 Etienne Pallier
Collecting wheel
945 62 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
946 62 Etienne Pallier
Installing collected packages: wheel
947 62 Etienne Pallier
  Found existing installation: wheel 0.24.0
948 62 Etienne Pallier
    Uninstalling wheel-0.24.0:
949 62 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
950 62 Etienne Pallier
Successfully installed wheel-0.29.0
951 62 Etienne Pallier
952 153 Etienne Pallier
YES !!!
953 1 Etienne Pallier
954 154 Etienne Pallier
Only if necessary, you can reinstall mysqlclient:
955 153 Etienne Pallier
$ pip uninstall mysqlclient
956 62 Etienne Pallier
$ pip install mysqlclient
957 62 Etienne Pallier
Collecting mysqlclient
958 62 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
959 62 Etienne Pallier
Building wheels for collected packages: mysqlclient
960 62 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... done
961 62 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/9b/06/50/d11418c26cf8f2156b13d4363b5afde8e7e75ebb8540d0228d
962 62 Etienne Pallier
Successfully built mysqlclient
963 62 Etienne Pallier
Installing collected packages: mysqlclient
964 62 Etienne Pallier
Successfully installed mysqlclient-1.3.7
965 62 Etienne Pallier
966 1 Etienne Pallier
</pre>
967 62 Etienne Pallier
968 146 Etienne Pallier
   * => If issue under Windows
969 62 Etienne Pallier
<pre>
970 62 Etienne Pallier
Same message as the issue for Mac.
971 146 Etienne Pallier
972 204 Paul Carensac
=> Need to install wheel manually :
973 62 Etienne Pallier
974 62 Etienne Pallier
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient to download the newest mysqlclient wheel
975 62 Etienne Pallier
976 62 Etienne Pallier
$ pip install path\to\mysqlclient\wheel
977 62 Etienne Pallier
978 154 Etienne Pallier
(No need to redo "pip install mysqlclient")
979 62 Etienne Pallier
</pre>
980 163 Paul Carensac
981 163 Paul Carensac
  * *Install the julian day converter* :
982 163 Paul Carensac
<pre>
983 163 Paul Carensac
$ pip install jdcal
984 163 Paul Carensac
</pre>
985 182 Paul Carensac
986 188 Paul Carensac
  * *Install Celery and dependencies* :
987 182 Paul Carensac
<pre>
988 182 Paul Carensac
$ pip install celery
989 1 Etienne Pallier
$ pip install django-celery
990 188 Paul Carensac
$ pip install Twisted==16.0.0
991 188 Paul Carensac
</pre>
992 188 Paul Carensac
993 188 Paul Carensac
  * *Install django test without migrations (compulsory to use the prod DB for tests)* :
994 188 Paul Carensac
<pre>
995 188 Paul Carensac
$ pip install django-test-without-migrations==0.4
996 188 Paul Carensac
</pre>
997 188 Paul Carensac
998 188 Paul Carensac
  * *Install voevent parser* :
999 188 Paul Carensac
<pre>
1000 188 Paul Carensac
$ pip install voevent-parse==0.9.5
1001 188 Paul Carensac
</pre>
1002 188 Paul Carensac
1003 188 Paul Carensac
1004 188 Paul Carensac
  * *Install other dependencies (useful ? TBC)* :
1005 188 Paul Carensac
<pre>
1006 188 Paul Carensac
$ pip install amqplib==1.0.2
1007 188 Paul Carensac
$ pip install pluggy==0.3.1
1008 188 Paul Carensac
$ pip install py==1.4.31
1009 182 Paul Carensac
</pre>