mirror of
https://github.com/Sosokker/ku-polls.git
synced 2025-12-18 21:14:05 +01:00
Merge pull request #54 from Sosokker/iteration4
Iteration4 Update Installation.md/ Fix Setup.py error on posix
This commit is contained in:
commit
a0e73cfc14
2
.github/workflows/django.yml
vendored
2
.github/workflows/django.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
max-parallel: 4
|
max-parallel: 4
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.11.4]
|
python-version: [3.11]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|||||||
@ -31,7 +31,7 @@ or run `setup.ps1` (For Windows User)
|
|||||||
2. Run these commands to clone this repository and enter the directory.
|
2. Run these commands to clone this repository and enter the directory.
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/Sosokker/ku-polls
|
git clone https://github.com/Sosokker/ku-polls
|
||||||
cd ku
|
cd ku-polls
|
||||||
```
|
```
|
||||||
|
|
||||||
3. (Optional: You can use venv instead)Install virtualenv via pip
|
3. (Optional: You can use venv instead)Install virtualenv via pip
|
||||||
@ -41,20 +41,20 @@ python -m pip install --user virtualenv
|
|||||||
```
|
```
|
||||||
4. Create virtual environment with `venv` or `virtualenv`.
|
4. Create virtual environment with `venv` or `virtualenv`.
|
||||||
```bash
|
```bash
|
||||||
python -m virtualenv .venv
|
python -m virtualenv venv
|
||||||
or
|
or
|
||||||
python -m venv .venv
|
python -m venv venv
|
||||||
```
|
```
|
||||||
5. Use `virtual environment`
|
5. Use `virtual environment`
|
||||||
|
|
||||||
- Windows
|
- Windows
|
||||||
```bash
|
```bash
|
||||||
.venv\Scripts\activate
|
.\venv\Scripts\activate
|
||||||
```
|
```
|
||||||
|
|
||||||
- Linux or MacOS
|
- Linux or MacOS
|
||||||
```bash
|
```bash
|
||||||
source .venv/bin/activate
|
source venv/bin/activate
|
||||||
```
|
```
|
||||||
6. Install require module.
|
6. Install require module.
|
||||||
```
|
```
|
||||||
@ -65,6 +65,10 @@ pip install -r requirements.txt
|
|||||||
**You can look at `sample.env` for more information and others environment variables to set.**
|
**You can look at `sample.env` for more information and others environment variables to set.**
|
||||||
```bash
|
```bash
|
||||||
SECRET_KEY=your_secret_key
|
SECRET_KEY=your_secret_key
|
||||||
|
DEBUG = False
|
||||||
|
ALLOWED_HOSTS = *.ku.th, localhost, 127.0.0.1, ::1
|
||||||
|
TIME_ZONE = Asia/Bangkok
|
||||||
|
EMAIL_HOST_PASSWORD = yourpassword
|
||||||
```
|
```
|
||||||
|
|
||||||
You can generate your own `your_secret_key` by this command
|
You can generate your own `your_secret_key` by this command
|
||||||
|
|||||||
@ -7,4 +7,8 @@ DEBUG = False
|
|||||||
# You can use wildcard chars (*) and IP addresses. Use * for any host.
|
# You can use wildcard chars (*) and IP addresses. Use * for any host.
|
||||||
ALLOWED_HOSTS = *.ku.th, localhost, 127.0.0.1, ::1
|
ALLOWED_HOSTS = *.ku.th, localhost, 127.0.0.1, ::1
|
||||||
# Your timezone
|
# Your timezone
|
||||||
TIME_ZONE = Asia/Bangkok
|
TIME_ZONE = Asia/Bangkok
|
||||||
|
# Password to use for the SMTP server defined in EMAIL_HOST. This setting is used in conjunction
|
||||||
|
# with EMAIL_HOST_USER when authenticating to the SMTP server.
|
||||||
|
# If either of these settings is empty, Django won’t attempt authentication.
|
||||||
|
EMAIL_HOST_PASSWORD=somepassword
|
||||||
27
setup.py
27
setup.py
@ -20,13 +20,20 @@ def check_python_command():
|
|||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def install_virtualenv(python_commands):
|
||||||
|
# Set check=True to throw an error if the return code is non-zero (which is an indication of some error happening).
|
||||||
|
try:
|
||||||
|
subprocess.run([python_commands, "-m", "pip", "install", "--user", "virtualenv"], check=True)
|
||||||
|
except:
|
||||||
|
print("+++Error Occur when try to install Virtualenv+++")
|
||||||
|
|
||||||
def create_virtual_environment(env_name, python_command):
|
def create_virtual_environment(env_name, python_command):
|
||||||
subprocess.run([python_command, "-m", "venv", env_name], check=True)
|
subprocess.run([python_command, "-m", "virtualenv", env_name], check=True)
|
||||||
|
|
||||||
def customize_virtual_environment():
|
def customize_virtual_environment():
|
||||||
env_name = input("Enter a custom virtual environment name (or press Enter for the default): ").strip()
|
env_name = input("Enter a custom virtual environment name (or press Enter for the default): ").strip()
|
||||||
if not env_name:
|
if not env_name:
|
||||||
env_name = ".venv"
|
env_name = "venv"
|
||||||
return env_name
|
return env_name
|
||||||
|
|
||||||
def setup_environment_variables(python_command_in_venv):
|
def setup_environment_variables(python_command_in_venv):
|
||||||
@ -105,19 +112,21 @@ def main():
|
|||||||
setup_venv = input("Do you want to set up a virtual environment? (yes/no): ").lower()
|
setup_venv = input("Do you want to set up a virtual environment? (yes/no): ").lower()
|
||||||
if setup_venv == "yes":
|
if setup_venv == "yes":
|
||||||
print("==========================Default Mode==========================")
|
print("==========================Default Mode==========================")
|
||||||
if not os.path.exists(".venv"):
|
print("==========================Install Virtualenv==========================")
|
||||||
print("Creating a new virtual environment...")
|
install_virtualenv(python_command)
|
||||||
subprocess.run([python_command, "-m", "venv", ".venv"])
|
if not os.path.exists("venv"):
|
||||||
|
print("==========================Creating a new virtual environment...==========================")
|
||||||
|
subprocess.run([python_command, "-m", "virtualenv", "venv"])
|
||||||
else:
|
else:
|
||||||
print("==========================Using an existing virtual environment.==========================")
|
print("==========================Using an existing virtual environment.==========================")
|
||||||
|
|
||||||
if is_posix:
|
if is_posix:
|
||||||
activate_command = os.path.join(".venv", "bin", "activate")
|
activate_command = os.path.join("venv", "bin", "activate")
|
||||||
elif is_windows:
|
elif is_windows:
|
||||||
activate_command = os.path.join(".venv", "Scripts", "activate")
|
activate_command = os.path.join("venv", "Scripts", "activate")
|
||||||
subprocess.run([activate_command], shell=True)
|
subprocess.run([activate_command], shell=True)
|
||||||
|
|
||||||
python_command = os.path.join(".venv", "bin", "python") if is_posix else os.path.join(".venv", "Scripts", "python")
|
python_command = os.path.join("venv", "bin", "python") if is_posix else os.path.join("venv", "Scripts", "python")
|
||||||
else:
|
else:
|
||||||
print("Not setting up a virtual environment. Using the global Python interpreter.")
|
print("Not setting up a virtual environment. Using the global Python interpreter.")
|
||||||
|
|
||||||
@ -149,6 +158,8 @@ def main():
|
|||||||
print("==========================Custom Mode==========================")
|
print("==========================Custom Mode==========================")
|
||||||
python_commands = check_python_command()
|
python_commands = check_python_command()
|
||||||
env_name = customize_virtual_environment()
|
env_name = customize_virtual_environment()
|
||||||
|
print("==========================Install Virtualenv==========================")
|
||||||
|
install_virtualenv(python_commands)
|
||||||
create_virtual_environment(env_name, python_commands)
|
create_virtual_environment(env_name, python_commands)
|
||||||
print(f"Finishing Create Virtual environment {env_name}")
|
print(f"Finishing Create Virtual environment {env_name}")
|
||||||
python_command_in_venv = os.path.join(env_name, "bin", "python") if is_posix else os.path.join(env_name, "Scripts", "python")
|
python_command_in_venv = os.path.join(env_name, "bin", "python") if is_posix else os.path.join(env_name, "Scripts", "python")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user