Project Installation

Version 13 (Etienne Pallier, 03/25/2016 05:57 pm)

1 1 Etienne Pallier
h1. Project Installation
2 1 Etienne Pallier
3 6 Etienne Pallier
4 11 Etienne Pallier
Project Development page : [[Project Development]]
5 11 Etienne Pallier
6 6 Etienne Pallier
HOWTO Format Redmine Wiki : http://www.redmine.org/projects/redmine/wiki/FrRedmineWikiFormatting
7 6 Etienne Pallier
8 6 Etienne Pallier
{{>toc}}
9 6 Etienne Pallier
10 6 Etienne Pallier
11 3 Etienne Pallier
---
12 3 Etienne Pallier
13 4 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}I - DATABASE SCHEMA (v0.2.1)%
14 4 Etienne Pallier
15 4 Etienne Pallier
16 4 Etienne Pallier
{{thumbnail(PYROS_PDM_v021.png, size=300, title=Pyros data model)}}
17 4 Etienne Pallier
18 4 Etienne Pallier
19 4 Etienne Pallier
---
20 5 Etienne Pallier
21 5 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}II - Get the project (from gitlab)%
22 5 Etienne Pallier
23 1 Etienne Pallier
24 12 Etienne Pallier
h3. Browse the code from gitlab
25 5 Etienne Pallier
26 12 Etienne Pallier
https://gitlab.irap.omp.eu/epallier/pyros/tree/master
27 5 Etienne Pallier
28 5 Etienne Pallier
h3. Project structure
29 5 Etienne Pallier
30 5 Etienne Pallier
Once you have fetched the project, you should obtain this structure:
31 5 Etienne Pallier
32 5 Etienne Pallier
<pre>
33 5 Etienne Pallier
34 5 Etienne Pallier
PYROS/
35 5 Etienne Pallier
├── install/
36 5 Etienne Pallier
│   └── REQUIREMENTS.txt
37 5 Etienne Pallier
│   └── INSTALLATION.txt
38 5 Etienne Pallier
├── public/
39 5 Etienne Pallier
│   └── static/
40 5 Etienne Pallier
├── src/
41 5 Etienne Pallier
│   ├── manage.py
42 5 Etienne Pallier
│   ├── pyros/
43 5 Etienne Pallier
│   │   ├── __init__.py
44 5 Etienne Pallier
│   │   ├── __pycache__
45 5 Etienne Pallier
│   │   ├── settings.py
46 5 Etienne Pallier
│   │   ├── urls.py
47 5 Etienne Pallier
│   │   └── wsgi.py
48 5 Etienne Pallier
│   └── pyrosapp/
49 5 Etienne Pallier
│       ├── __init__.py
50 5 Etienne Pallier
│       ├── admin.py
51 5 Etienne Pallier
│       ├── apps.py
52 5 Etienne Pallier
│       ├── migrations
53 5 Etienne Pallier
│       ├── models.py
54 5 Etienne Pallier
│       ├── tests.py
55 5 Etienne Pallier
│       └── views.py
56 5 Etienne Pallier
57 5 Etienne Pallier
58 5 Etienne Pallier
</pre>
59 5 Etienne Pallier
60 5 Etienne Pallier
h3. From the terminal
61 5 Etienne Pallier
62 5 Etienne Pallier
<pre>
63 5 Etienne Pallier
git clone https://gitlab.irap.omp.eu/epallier/pyros.git PYROS
64 5 Etienne Pallier
(or also : git clone git@gitlab.irap.omp.eu:epallier/pyros.git PYROS)
65 5 Etienne Pallier
</pre>
66 5 Etienne Pallier
67 5 Etienne Pallier
This creates a PYROS/ folder containing the project (with a .git/ subfolder for synchronization with the git repository)
68 5 Etienne Pallier
69 5 Etienne Pallier
_If you just wanted a static copy of the project (without synchronization), just remove the .git/ folder:_
70 5 Etienne Pallier
<pre>
71 5 Etienne Pallier
$ rm -r .git/
72 5 Etienne Pallier
</pre>
73 5 Etienne Pallier
74 5 Etienne Pallier
h3. From Eclipse
75 5 Etienne Pallier
76 5 Etienne Pallier
1) Deactivate CA certificate verification
77 5 Etienne Pallier
78 5 Etienne Pallier
Window -> Preferences -> Team -> git -> configuration -> Add entry
79 5 Etienne Pallier
80 5 Etienne Pallier
Key = http.sslVerify
81 5 Etienne Pallier
Value = false
82 5 Etienne Pallier
83 5 Etienne Pallier
2) Fetch the project
84 5 Etienne Pallier
85 5 Etienne Pallier
File/Import project from git
86 5 Etienne Pallier
87 5 Etienne Pallier
Select repository source: Clone URI: https://gitlab.irap.omp.eu/epallier/pyros.git
88 5 Etienne Pallier
89 5 Etienne Pallier
Directory: 
90 5 Etienne Pallier
par défaut, il propose : /Users/epallier/git/pyros
91 5 Etienne Pallier
mais on peut le mettre ailleurs (c'est ce que j'ai fait)
92 5 Etienne Pallier
93 5 Etienne Pallier
initial branch: master
94 5 Etienne Pallier
remote name: origin
95 5 Etienne Pallier
96 5 Etienne Pallier
Import as general project
97 5 Etienne Pallier
98 5 Etienne Pallier
Project name: PYROS
99 5 Etienne Pallier
100 5 Etienne Pallier
101 5 Etienne Pallier
3) Configure the project
102 5 Etienne Pallier
103 5 Etienne Pallier
The project is created. Now, you have to set it as a «PyDev » and a « Django » project.
104 5 Etienne Pallier
105 5 Etienne Pallier
clic droit sur le projet / PyDev / set as a PyDev project
106 5 Etienne Pallier
107 5 Etienne Pallier
clic droit sur le projet / PyDev / set as a Django project
108 5 Etienne Pallier
109 5 Etienne Pallier
clic droit sur le projet : on doit maintenant avoir un sous-menu Django
110 5 Etienne Pallier
111 5 Etienne Pallier
clic droit sur le dossier src / PyDev / set as source folder (add to PYTHONPATH)
112 5 Etienne Pallier
113 5 Etienne Pallier
clic droit sur projet / Properties / Pydev-Django :
114 5 Etienne Pallier
  - Django manage.py : src/manage.py
115 5 Etienne Pallier
  - Django settings module : pyros.settings
116 5 Etienne Pallier
117 5 Etienne Pallier
118 5 Etienne Pallier
4) Set Code style
119 5 Etienne Pallier
120 5 Etienne Pallier
Window/Preferences : Pydev / Editor
121 5 Etienne Pallier
- Auto Imports : uncheck « Do auto import »
122 5 Etienne Pallier
- Code style:
123 5 Etienne Pallier
	- Locals … : camelCase
124 5 Etienne Pallier
	- Methods : camelCase() with first lower
125 5 Etienne Pallier
- Code style / Code Formatter: activer « use autopep8.py for code formatting »
126 5 Etienne Pallier
- Tabs : Tab length : 4
127 9 Etienne Pallier
128 13 Etienne Pallier
(
129 13 Etienne Pallier
il faudra aussi faire un peu plus loin : 
130 13 Etienne Pallier
https://projects.irap.omp.eu/projects/pyros/wiki/Project_Installation#Eclipse-only-Set-the-Python3-virtual-environment-as-the-project-interpreter
131 13 Etienne Pallier
)
132 13 Etienne Pallier
133 9 Etienne Pallier
134 9 Etienne Pallier
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}III - INSTALLATION%
135 9 Etienne Pallier
136 9 Etienne Pallier
137 9 Etienne Pallier
---
138 9 Etienne Pallier
139 9 Etienne Pallier
h3. Install MySql (only if necessary)
140 9 Etienne Pallier
141 9 Etienne Pallier
 * Linux Ubuntu
142 9 Etienne Pallier
<pre>
143 9 Etienne Pallier
144 9 Etienne Pallier
$ sudo apt-get install mysql-server
145 9 Etienne Pallier
$ sudo apt-get install mysql-client
146 9 Etienne Pallier
147 9 Etienne Pallier
</pre>
148 9 Etienne Pallier
149 9 Etienne Pallier
 * Linux CentOS
150 9 Etienne Pallier
<pre>
151 9 Etienne Pallier
TODO:
152 9 Etienne Pallier
$ sudo yum install mysql
153 9 Etienne Pallier
...
154 9 Etienne Pallier
</pre>
155 9 Etienne Pallier
156 9 Etienne Pallier
 * Mac OS X
157 9 Etienne Pallier
Install XAMPP
158 9 Etienne Pallier
(but you could also use the pre-installed Mac OS MySql)
159 9 Etienne Pallier
<pre>
160 9 Etienne Pallier
TODO:
161 9 Etienne Pallier
</pre>
162 9 Etienne Pallier
163 9 Etienne Pallier
 * Windows
164 9 Etienne Pallier
165 9 Etienne Pallier
<pre>
166 9 Etienne Pallier
Download and install the newest version on https://dev.mysql.com/downloads/installer/
167 9 Etienne Pallier
168 9 Etienne Pallier
Once installed, launch MySQL Installer. Clic on 'Add...' on the right.
169 9 Etienne Pallier
In MySQLServers section, choose the newest, then clic on next.
170 9 Etienne Pallier
Install and configure the server (just follow the installation guide).
171 9 Etienne Pallier
172 9 Etienne Pallier
Then launch mysql (via the Windows menu).
173 9 Etienne Pallier
</pre>
174 9 Etienne Pallier
175 9 Etienne Pallier
176 9 Etienne Pallier
---
177 9 Etienne Pallier
178 9 Etienne Pallier
h3. Install Python3.5 (only if necessary)
179 9 Etienne Pallier
180 9 Etienne Pallier
181 9 Etienne Pallier
 * Mac OS X :
182 9 Etienne Pallier
<pre>
183 9 Etienne Pallier
184 9 Etienne Pallier
1) Installer MacPort
185 9 Etienne Pallier
(TODO: doc)
186 9 Etienne Pallier
187 9 Etienne Pallier
2) Installer le "port" python35
188 9 Etienne Pallier
$ sudo port install python35
189 9 Etienne Pallier
190 9 Etienne Pallier
</pre>
191 9 Etienne Pallier
192 9 Etienne Pallier
 * Linux (Ubuntu) :
193 9 Etienne Pallier
<pre>
194 9 Etienne Pallier
$ sudo add-apt-repository ppa:fkrull/deadsnakes
195 9 Etienne Pallier
$ sudo apt-get update
196 9 Etienne Pallier
$ sudo apt-get install python3.5
197 9 Etienne Pallier
198 9 Etienne Pallier
$ sudo pip install virtualenv
199 9 Etienne Pallier
</pre>
200 9 Etienne Pallier
201 9 Etienne Pallier
202 9 Etienne Pallier
 * Windows 7 :
203 9 Etienne Pallier
<pre>
204 9 Etienne Pallier
Go to https://www.python.org/downloads/windows/ , choose the wanted version
205 9 Etienne Pallier
On the wanted version’s page, download Windows x86 executable installer
206 9 Etienne Pallier
207 9 Etienne Pallier
Run the executable
208 9 Etienne Pallier
    * On the first page, check "Add python3.5 to PATH"
209 9 Etienne Pallier
    * Choose "Install now" option
210 9 Etienne Pallier
211 9 Etienne Pallier
Open cmd (windows + R, cmd) :
212 9 Etienne Pallier
 $ python -m pip install --upgrade pip
213 9 Etienne Pallier
 $ pip install virtualenv
214 9 Etienne Pallier
</pre>
215 9 Etienne Pallier
216 9 Etienne Pallier
 * Windows 10 :
217 9 Etienne Pallier
<pre>
218 9 Etienne Pallier
TODO:
219 9 Etienne Pallier
</pre>
220 9 Etienne Pallier
221 9 Etienne Pallier
---
222 9 Etienne Pallier
223 9 Etienne Pallier
h3. Create a Python3 virtual environment dedicated to the project (inside the project folder)
224 9 Etienne Pallier
225 9 Etienne Pallier
<pre>
226 9 Etienne Pallier
227 9 Etienne Pallier
$ mkdir private/
228 9 Etienne Pallier
229 9 Etienne Pallier
$ cd private/
230 9 Etienne Pallier
231 9 Etienne Pallier
$ which python3.5 ("where python" for windows)
232 9 Etienne Pallier
/opt/local/bin/python3.5
233 9 Etienne Pallier
234 9 Etienne Pallier
$ virtualenv-3.5 venv_py35_pyros -p /opt/local/bin/python3.5
235 9 Etienne Pallier
=> creates a venv_py35_pyros/ folder inside PYROS/private/
236 9 Etienne Pallier
237 9 Etienne Pallier
</pre>
238 9 Etienne Pallier
239 9 Etienne Pallier
---
240 9 Etienne Pallier
241 9 Etienne Pallier
h3. Activate the python virtual environment (from inside the project)
242 9 Etienne Pallier
243 9 Etienne Pallier
<pre>
244 9 Etienne Pallier
245 9 Etienne Pallier
$ pwd
246 9 Etienne Pallier
.../PYROS/private
247 9 Etienne Pallier
248 9 Etienne Pallier
$ source ./venv_py35_pyros/bin/activate (venv_py35_pyros/Scripts/activate on Windows)
249 9 Etienne Pallier
250 9 Etienne Pallier
251 9 Etienne Pallier
$ python -V
252 9 Etienne Pallier
Python 3.5.1
253 9 Etienne Pallier
254 9 Etienne Pallier
$ which pip
255 9 Etienne Pallier
.../PYROS/venv_py35_pyros/bin/pip
256 9 Etienne Pallier
257 9 Etienne Pallier
Upgrade pip to last version available:
258 9 Etienne Pallier
$ pip install --upgrade pip
259 9 Etienne Pallier
Collecting pip
260 9 Etienne Pallier
  Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
261 9 Etienne Pallier
Installing collected packages: pip
262 9 Etienne Pallier
  Found existing installation: pip 7.1.2
263 9 Etienne Pallier
    Uninstalling pip-7.1.2:
264 9 Etienne Pallier
      Successfully uninstalled pip-7.1.2
265 9 Etienne Pallier
Successfully installed pip-8.1.1
266 9 Etienne Pallier
267 9 Etienne Pallier
Upgrade wheel to last version available:
268 9 Etienne Pallier
$ pip install --upgrade wheel
269 9 Etienne Pallier
Collecting wheel
270 9 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
271 9 Etienne Pallier
Installing collected packages: wheel
272 9 Etienne Pallier
  Found existing installation: wheel 0.24.0
273 9 Etienne Pallier
    Uninstalling wheel-0.24.0:
274 9 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
275 9 Etienne Pallier
Successfully installed wheel-0.29.0
276 9 Etienne Pallier
277 9 Etienne Pallier
278 9 Etienne Pallier
</pre>
279 9 Etienne Pallier
280 9 Etienne Pallier
---
281 9 Etienne Pallier
282 9 Etienne Pallier
h3. Install the needed Python packages (from within the virtual environment)
283 9 Etienne Pallier
284 9 Etienne Pallier
First, be sure that the virtual environment is activated:
285 9 Etienne Pallier
<pre>
286 9 Etienne Pallier
$ python -V
287 9 Etienne Pallier
Python 3.5.1
288 9 Etienne Pallier
</pre>
289 9 Etienne Pallier
290 9 Etienne Pallier
 * *Automatic Installation of all packages*
291 9 Etienne Pallier
<pre>
292 9 Etienne Pallier
$ pip install -r REQUIREMENTS.txt
293 9 Etienne Pallier
</pre>
294 9 Etienne Pallier
295 9 Etienne Pallier
 * *Or, manual installation of each package*
296 9 Etienne Pallier
297 9 Etienne Pallier
  * *Install Django* :
298 9 Etienne Pallier
<pre>
299 9 Etienne Pallier
$ pip install django
300 9 Etienne Pallier
Collecting django
301 9 Etienne Pallier
  Downloading Django-1.9.4-py2.py3-none-any.whl (6.6MB)
302 9 Etienne Pallier
Installing collected packages: django
303 9 Etienne Pallier
Successfully installed django-1.9.4
304 9 Etienne Pallier
305 9 Etienne Pallier
$ pip install django-admin-tools
306 9 Etienne Pallier
Collecting django-admin-tools
307 9 Etienne Pallier
  Downloading django_admin_tools-0.7.2-py2.py3-none-any.whl (289kB)
308 9 Etienne Pallier
Installing collected packages: django-admin-tools
309 9 Etienne Pallier
Successfully installed django-admin-tools-0.7.2
310 9 Etienne Pallier
311 9 Etienne Pallier
$ pip install django-debug-toolbar
312 9 Etienne Pallier
Collecting django-debug-toolbar
313 9 Etienne Pallier
  Downloading django_debug_toolbar-1.4-py2.py3-none-any.whl (212kB)
314 9 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)
315 9 Etienne Pallier
Collecting sqlparse (from django-debug-toolbar)
316 9 Etienne Pallier
  Downloading sqlparse-0.1.19.tar.gz (58kB)
317 9 Etienne Pallier
Building wheels for collected packages: sqlparse
318 9 Etienne Pallier
  Running setup.py bdist_wheel for sqlparse ... done
319 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/7b/d4/72/6011bb100dd5fc213164e4bbee13d4e03261dd54ce6a5de6b8
320 9 Etienne Pallier
Successfully built sqlparse
321 9 Etienne Pallier
Installing collected packages: sqlparse, django-debug-toolbar
322 9 Etienne Pallier
Successfully installed django-debug-toolbar-1.4 sqlparse-0.1.19
323 9 Etienne Pallier
324 9 Etienne Pallier
$ pip install django-extensions
325 9 Etienne Pallier
Collecting django-extensions
326 9 Etienne Pallier
  Downloading django_extensions-1.6.1-py2.py3-none-any.whl (202kB)
327 9 Etienne Pallier
Collecting six>=1.2 (from django-extensions)
328 9 Etienne Pallier
  Downloading six-1.10.0-py2.py3-none-any.whl
329 9 Etienne Pallier
Installing collected packages: six, django-extensions
330 9 Etienne Pallier
Successfully installed django-extensions-1.6.1 six-1.10.0
331 9 Etienne Pallier
332 9 Etienne Pallier
$ pip install django-suit
333 9 Etienne Pallier
Collecting django-suit
334 9 Etienne Pallier
  Downloading django-suit-0.2.18.tar.gz (587kB)
335 9 Etienne Pallier
Building wheels for collected packages: django-suit
336 9 Etienne Pallier
  Running setup.py bdist_wheel for django-suit ... done
337 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/12/8b/9a/e02ab0ad9229881638aa040d47d77c8f562999533811927d41
338 9 Etienne Pallier
Successfully built django-suit
339 9 Etienne Pallier
Installing collected packages: django-suit
340 9 Etienne Pallier
Successfully installed django-suit-0.2.18
341 9 Etienne Pallier
342 9 Etienne Pallier
</pre>
343 9 Etienne Pallier
344 9 Etienne Pallier
  * *Install the web application server gunicorn (will be used in production instead of the dev django web server)* :
345 9 Etienne Pallier
<pre>
346 9 Etienne Pallier
$ pip install gunicorn
347 9 Etienne Pallier
Collecting gunicorn
348 9 Etienne Pallier
  Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
349 9 Etienne Pallier
Installing collected packages: gunicorn
350 9 Etienne Pallier
Successfully installed gunicorn-19.4.5
351 9 Etienne Pallier
</pre>
352 9 Etienne Pallier
353 9 Etienne Pallier
  * *Install the python mysql client*:
354 9 Etienne Pallier
<pre>
355 9 Etienne Pallier
$ pip install mysqlclient
356 9 Etienne Pallier
...
357 9 Etienne Pallier
</pre>
358 9 Etienne Pallier
359 9 Etienne Pallier
   * => Issue under Mac OS X:
360 9 Etienne Pallier
<pre>
361 9 Etienne Pallier
$ pip install mysqlclient
362 9 Etienne Pallier
Collecting mysqlclient
363 9 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
364 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
365 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
366 9 Etienne Pallier
367 9 Etienne Pallier
  ----------------------------------------
368 9 Etienne Pallier
  Failed building wheel for mysqlclient
369 9 Etienne Pallier
  Running setup.py clean for mysqlclient
370 9 Etienne Pallier
Failed to build mysqlclient
371 9 Etienne Pallier
Installing collected packages: mysqlclient
372 9 Etienne Pallier
  Running setup.py install for mysqlclient ... done
373 9 Etienne Pallier
Successfully installed mysqlclient-1.3.7
374 9 Etienne Pallier
375 9 Etienne Pallier
BOUH !!!
376 9 Etienne Pallier
377 9 Etienne Pallier
$ pip install --upgrade wheel
378 9 Etienne Pallier
Collecting wheel
379 9 Etienne Pallier
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
380 9 Etienne Pallier
Installing collected packages: wheel
381 9 Etienne Pallier
  Found existing installation: wheel 0.24.0
382 9 Etienne Pallier
    Uninstalling wheel-0.24.0:
383 9 Etienne Pallier
      Successfully uninstalled wheel-0.24.0
384 9 Etienne Pallier
Successfully installed wheel-0.29.0
385 9 Etienne Pallier
386 9 Etienne Pallier
$ pip uninstall mysqlclient
387 9 Etienne Pallier
388 9 Etienne Pallier
$ pip install mysqlclient
389 9 Etienne Pallier
Collecting mysqlclient
390 9 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
391 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
392 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... done
393 9 Etienne Pallier
  Stored in directory: /Users/epallier/Library/Caches/pip/wheels/9b/06/50/d11418c26cf8f2156b13d4363b5afde8e7e75ebb8540d0228d
394 9 Etienne Pallier
Successfully built mysqlclient
395 9 Etienne Pallier
Installing collected packages: mysqlclient
396 9 Etienne Pallier
Successfully installed mysqlclient-1.3.7
397 9 Etienne Pallier
398 9 Etienne Pallier
YES !!!
399 9 Etienne Pallier
400 9 Etienne Pallier
</pre>
401 9 Etienne Pallier
402 9 Etienne Pallier
   * => Issues under Ubuntu:
403 9 Etienne Pallier
<pre>
404 9 Etienne Pallier
$ pip install mysqlclient
405 9 Etienne Pallier
Collecting mysqlclient
406 9 Etienne Pallier
  Downloading mysqlclient-1.3.7.tar.gz (79kB)
407 9 Etienne Pallier
    Complete output from command python setup.py egg_info:
408 9 Etienne Pallier
    /bin/sh: 1: mysql_config: not found
409 9 Etienne Pallier
    Traceback (most recent call last):
410 9 Etienne Pallier
      File "<string>", line 1, in <module>
411 9 Etienne Pallier
    [...]
412 9 Etienne Pallier
    ----------------------------------------
413 9 Etienne Pallier
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-q6j4inuz/mysqlclient/
414 9 Etienne Pallier
415 9 Etienne Pallier
BOUH !!!
416 9 Etienne Pallier
417 9 Etienne Pallier
$ sudo apt-get install libmysqlclient-dev
418 9 Etienne Pallier
419 9 Etienne Pallier
$ pip install mysqlclient
420 9 Etienne Pallier
Collecting mysqlclient
421 9 Etienne Pallier
  Using cached mysqlclient-1.3.7.tar.gz
422 9 Etienne Pallier
Building wheels for collected packages: mysqlclient
423 9 Etienne Pallier
  Running setup.py bdist_wheel for mysqlclient ... error
424 9 Etienne Pallier
425 9 Etienne Pallier
    _mysql.c:40:20: fatal error: Python.h: No such file or directory
426 9 Etienne Pallier
     #include "Python.h"
427 9 Etienne Pallier
                        ^
428 9 Etienne Pallier
    compilation terminated.
429 9 Etienne Pallier
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
430 9 Etienne Pallier
    
431 9 Etienne Pallier
    ----------------------------------------
432 9 Etienne Pallier
Command "/home/carens_p/pyros/venv_py35_pyros/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-k3klv92j/mysqlclient/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-gz242xxs-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/carens_p/pyros/venv_py35_pyros/include/site/python3.5/mysqlclient" failed with error code 1 in /tmp/pip-build-k3klv92j/mysqlclient/
433 9 Etienne Pallier
434 9 Etienne Pallier
BOUH !!!
435 9 Etienne Pallier
436 9 Etienne Pallier
$ sudo apt-get install python3.5-dev
437 9 Etienne Pallier
438 9 Etienne Pallier
$ pip install mysqlclient
439 9 Etienne Pallier
440 9 Etienne Pallier
YES !!!
441 9 Etienne Pallier
442 9 Etienne Pallier
</pre>
443 9 Etienne Pallier
444 9 Etienne Pallier
 * => Issue under Windows
445 9 Etienne Pallier
<pre>
446 9 Etienne Pallier
Same message as the issue for Mac.
447 9 Etienne Pallier
448 9 Etienne Pallier
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient to download the newest mysqlclient wheel
449 9 Etienne Pallier
450 9 Etienne Pallier
$ pip install path\to\mysqlclient\wheel
451 9 Etienne Pallier
452 9 Etienne Pallier
No need to redo "pip install mysqlclient"
453 9 Etienne Pallier
</pre>
454 9 Etienne Pallier
455 9 Etienne Pallier
---
456 9 Etienne Pallier
457 9 Etienne Pallier
h3. (Eclipse only) Set the Python3 virtual environment as the project interpreter
458 9 Etienne Pallier
459 9 Etienne Pallier
clic droit sur projet / Properties / PyDev - Interpreter/Grammar :
460 9 Etienne Pallier
Grammar version : 3
461 9 Etienne Pallier
462 9 Etienne Pallier
Interpreter : click on « click here to configure an interpreter not listed »
463 9 Etienne Pallier
464 9 Etienne Pallier
click on « New » :
465 9 Etienne Pallier
- Interpreter name : venv_py35_pyros
466 9 Etienne Pallier
- Interpreter executable : click on « Browse »
467 9 Etienne Pallier
	Select your private/venv_py35_pyros/bin/python3.5 executable
468 9 Etienne Pallier
	click OK
469 9 Etienne Pallier
	click OK again
470 9 Etienne Pallier
471 9 Etienne Pallier
Interpreter: select now venv_py35_pyros from the list
472 9 Etienne Pallier
473 9 Etienne Pallier
---
474 9 Etienne Pallier
475 9 Etienne Pallier
h3. Run the project
476 9 Etienne Pallier
477 9 Etienne Pallier
TODO: more details... (notamment sur localhost:8000/admin)
478 9 Etienne Pallier
479 9 Etienne Pallier
h4. From the terminal
480 9 Etienne Pallier
481 9 Etienne Pallier
<pre>
482 9 Etienne Pallier
483 9 Etienne Pallier
$ cd src/
484 9 Etienne Pallier
485 9 Etienne Pallier
$ ./manage.py runserver
486 9 Etienne Pallier
(or gunicorn pyros.wsgi)
487 9 Etienne Pallier
==> http://localhost:8000
488 9 Etienne Pallier
...
489 9 Etienne Pallier
...
490 9 Etienne Pallier
Ctrl-c
491 9 Etienne Pallier
492 9 Etienne Pallier
</pre>
493 9 Etienne Pallier
494 9 Etienne Pallier
h4. From Eclipse
495 9 Etienne Pallier
496 9 Etienne Pallier
Right clic on project -> Django/Custom command/runserver
497 9 Etienne Pallier
498 9 Etienne Pallier
Error on Ubuntu :
499 9 Etienne Pallier
500 9 Etienne Pallier
<pre>
501 9 Etienne Pallier
502 9 Etienne Pallier
Traceback (most recent call last):
503 9 Etienne Pallier
  File "/home/carens_p/git/pyros/src/manage.py", line 8, in <module>
504 9 Etienne Pallier
    from django.core.management import execute_from_command_line
505 9 Etienne Pallier
ImportError: No module named 'django'
506 9 Etienne Pallier
507 9 Etienne Pallier
</pre>
508 9 Etienne Pallier
509 9 Etienne Pallier
Project -> Properties -> Pydev interpreter -> Clic here to configure an interpreter not listed
510 9 Etienne Pallier
511 9 Etienne Pallier
select venv_py35_pyros
512 9 Etienne Pallier
513 9 Etienne Pallier
In Libraries, clic on 'New folder', then select your virtualenv's lib/python3.5/site-packages folder.
514 9 Etienne Pallier
515 9 Etienne Pallier
OK -> re-select venv_py35_pyros in 'Interpreter' dropdown menu
516 9 Etienne Pallier
517 9 Etienne Pallier
Then right clic on project -> Django/Custom command/runserver
518 9 Etienne Pallier
519 9 Etienne Pallier
check http://localhost:8000/
520 9 Etienne Pallier
521 9 Etienne Pallier
522 9 Etienne Pallier
---