Project Installation

Version 369 (Etienne Pallier, 10/04/2018 06:15 pm)

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