השרת שניתן להריץ עליו django ו - flask הוא delta-tomcat-vm .
יש לבחור מספר פורט - נא השתמש במספר בין 40000 ו-40999
על מנת לגלות אילו פורטים כבר בשימוש, הריצו 'netstat -an | grep ':[4]0. אם תתקלו בבעיות מאוחר יותר, בדקו שוב; יתכן שמישהו השתמש בפורט אבל לא הריץ את השרת שלו כשבדקתם.
שימו לב, העבודה מתבצעת בספריה בשם ה-username שלכם ב- specific/scratch/ אשר אינו מגובה, כך שכדאי שתמיד תשמרו עותק של קבצי המקור שלכם ב-home directory שלכם.
כדי ליצור ספריית django משלכם, הריצו:
ssh delta-tomcat-vm
sudo create-my-django-dir
cd /specific/scratch/<username>/django
כעת חזרו לנובה, כדי להעתיק את הקבצים אל התיקייה שיצרתם בעזרת הפקודה scp:
Use scp -r to copy your application files from ~home to delta-tomcat-vm - You do NOT have access to your ~home data from delta-tomcat-vm !!!!
nova 1% scp -r ~<your django application data> delta-tomcat-vm:/specific/scratch/<username>/django/
כעת, מתוך השרת delta-tomcat-vm הפעל את האפליקציה:
cd <app name dir>
for django:
python manage.py runserver delta-tomcat-vm:<port number>
למעוניינים בשימוש ב - flask, מומלץ לעבוד עם סביבה וירטואלית, כאן ההסבר יתבצע בשימוש ב - virtualenv, להרחבה ניתן להסתכל בלינק הבא או בגוגל הקרוב לביתכם
https://www.cs.tau.ac.il/system/node/289
צור סביבה וירטואלית (כאן נשתמש בפייתון 3.7 ופיפ 3.7, ניתן לשנות זאת אם רוצים) (זה צריך להתבצע רק כשאין סביבה)
virtualenv --prompt=<env-prefix> --python=python3.7 <env-path>
דוגמה:
virtualenv --prompt=<my-env> --python=python3.7 .env
הפעל את הסביבה (זה מתבצע כל פעם שמשתמשים בשרת! בלי הפעלה של הסביבה צריך להתקין לפי המדריך למטה, לא מומלץ)
source <env-path>/bin/activate.csh
התקנת flask (רק כשמייצרים סביבה חדשה) (רלוונטי לכל ספרייה שתרצו להתקין)
pip3.7 install flask
אם השגיאה מכילה משהו דומה לזה:
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/networkx/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/networkx/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/networkx/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/networkx/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/networkx/ Could not fetch URL https://pypi.org/simple/networkx/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/networkx/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping ERROR: Could not find a version that satisfies the requirement networkx ERROR: No matching distribution found for networkx WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
או לזה (פייתון 3.8.5 למשל ):
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
נסו את הפקודה הבאה (בשימוש ב - tcsh):
setenv LD_LIBRARY_PATH /usr/local/lib/openssl-1.1.1a/lib:$LD_LIBRARY_PATH
אם המשתנה לא קיים, השתמשו ב -
setenv LD_LIBRARY_PATH /usr/local/lib/openssl-1.1.1a/lib
והתקינו שוב את flask.
כעת ניתן להריץ את השרת
python <server.py>
כשהוא פועל, אתם יכולים להתחבר בעזרת דפדפן אינטרנט אל הכתובת 'http://server:port', כאשר server הינו שם המכונה שבה שרת ה-django שלכם רץ
(למשל, 'http://delta-tomcat-vm.cs.tau.ac.il:40001').
ניתן להתקין ספריות python ב-local path כיוון שאין לכם הרשאות לשנות את הספריות הכלליות:
mkdir /specific/scratch/<username>/python_package
chmod 765 /specific/scratch/<username>/python_package
pip install --target='/specific/scratch/<username>/python_package' <package_name>
על מנת להשתמש בספרייה החדשה
setenv PYTHONPATH /specific/scratch/<username>/python_package
Perhaps your account does not have write access to this directory? You can change the cache directory by setting the PYTHON_EGG_CACHE envirinment variable to point an accessible directory
מה לעשות?
mkdir /specific/scratch/<username>/python_cache
chmod 765 /specific/scratch/<username>/python_cache
setenv PYTHON_EGG_CACHE /specific/scratch/<username>/python_cache