我尝试在我的 apache 服务器中部署 Django 应用程序。尽管我阅读了所有教程和线程(包括 stackoverflow),但我仍然无法找到解决方案。
就上下文而言,我使用虚拟环境和 Django 3+ 在本地制作了一个 Django 应用程序。我的下一步是将其放入 Apache 服务器中。
因此,从我的 github 帐户拉取后,我使用以下命令在服务器上设置了一个虚拟环境
virtualenv env
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令行来安装要求
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。
基本上,配置虚拟主机后,出现以下错误:
**django.core.exceptions.ImproperlyConfigured: Configuration cannot be imported, environment variable DJANGO_CONFIGURATION is undefined.**
Run Code Online (Sandbox Code Playgroud)
我精确地说(它将包含在下面)一切都已正确安装并且环境变量已设置。
这是我的日志project_error.log:
[Fri Apr 24 17:54:52.416771 2020] [wsgi:error] [pid 30069] [remote 193.248.218.163:55647] mod_wsgi (pid=30069): Target WSGI script '/var/www/admin-dashboard/project/wsgi.py' cannot be loaded as Python module.
[Fri Apr 24 17:54:52.416903 2020] [wsgi:error] [pid 30069] [remote 193.248.218.163:55647] mod_wsgi (pid=30069): Exception occurred processing WSGI script '/var/www/admin-dashboard/project/wsgi.py'. …Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试从虚拟环境中以 sudo 身份运行 python 脚本。
当我激活我的虚拟环境时,我通常会使用python somescript.py并且我的脚本以正确版本的 python 和所有内容启动
当我使用时sudo python somescript.py,我加载了错误的 python 安装,这不是我的环境中的安装。
我该如何解决这个问题?
当我想创建一个新的 python venv 时,我使用以下命令:
python -m virtualenv -p=D:\python_v2\versions\3.8.3\python.exe D:\python_v2\venvs\DataScience
Run Code Online (Sandbox Code Playgroud)
自从我拿到新电脑以来,它工作得很好。
我已经安装了 python 和 virtualenv 模块,但是当我使用完全相同的命令时,出现以下错误:
Exception in thread Thread-6:
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1008.0_x64__qbz5n2kfra8p0\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\remic\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\virtualenv\seed\via_app_data\via_app_data.py", line 52, in _install
installer.install(creator.interpreter.version_info)
File "C:\Users\remic\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\virtualenv\seed\via_app_data\pip_install\base.py", line 51, in install
for name, module in self._console_scripts.items():
File "C:\Users\remic\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\virtualenv\seed\via_app_data\pip_install\base.py", line 118, in _console_scripts
entry_points = self._dist_info / "entry_points.txt"
File "C:\Users\remic\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\virtualenv\seed\via_app_data\pip_install\base.py", line 105, in _dist_info
raise RuntimeError("no dist info") …Run Code Online (Sandbox Code Playgroud) 我对这一切都很陌生,所以请耐心等待。
我启动并激活了一个虚拟环境。但是当我 pip install 任何东西时,它会安装到计算机,而不是虚拟环境。
我在 Mac 上尝试构建 Django 网站。
示例:激活虚拟机。我输入:
python -m pip install Django
Run Code Online (Sandbox Code Playgroud)
然后我可以停用虚拟环境,然后输入:
pip freeze
Run Code Online (Sandbox Code Playgroud)
它会列出新安装的 Django 版本。
关于为什么会发生这种情况有任何线索吗?
几个月来,我在 VSCode 中使用虚拟环境、python 笔记本和 jupyter 时遇到了问题,由于某种原因,很多时候,它找不到我添加的内核,即使我在运行时可以看到它们jupyter kernelspec list。它们是否出现似乎是随机的。重新加载屏幕并重新启动 vscode 没有帮助,禁用和重新启用 python 和 jupyter 扩展也没有帮助。我通过按钮、选择内核和命令面板都尝试了这两种方法。我通常从命令行启动 vscode,并激活我的虚拟环境。而且,很多我很久以前删除的内核仍然出现在列表中。vscode 和笔记本电脑都是最新的。我之前遇到过集成 jupyter 笔记本的问题,起初格式化和自动完成在笔记本中不起作用(但它们在常规 python 文件中起作用)。我使用的是 MacOS,如果这很重要的话。
我是诗歌新手,我有一个问题,在网上找不到太多有关信息。我的诗歌应该创建一个 python 3.9 的虚拟环境,它做到了。这是我从命令中得到的poetry env info:
Virtualenv
Python: 3.9.10
Implementation: CPython
Path: /home/..../.venv
Valid: True
System
Platform: linux
OS: posix
Python: /usr
Run Code Online (Sandbox Code Playgroud)
当我输入poetry shellthen时python,我确实进入了 python 3.9,并且能够导入已安装的软件包。但这是奇怪的部分。当我尝试检查已安装的软件包之一时,我得到的结果如下:
>>> import XXX.python_utils as utils
>>> utils
<module 'XXX.python_utils' from '/home/X/.local/lib/python3.9/site-packages/XXX/python_utils/__init__.py'>
Run Code Online (Sandbox Code Playgroud)
我的机器上确实安装了实际的 python 3.9,但 Poetry 应该在 virtualenv 中安装该包,而不是实际的 python3.9 site_packages,对吗?然后我尝试在我的机器上安装 python 3.9 而不是虚拟环境,包仍然可以导入。结果与上面相同。
然后我仔细检查了里面的东西.venv/lib/python3.9/site-packages,里面基本上什么都没有。我发现的是一些带有包名称并以.dist-info. 我不确定那是什么。
我也尝试which python过poetry shell,这就是我得到的:
(.venv) XXX@XXX:~/XXX$ which python
/home/.../.venv/bin/python
Run Code Online (Sandbox Code Playgroud)
看来诗歌确实在 venv 中使用了 python 3.9
最后,每次我运行 a …
我在 Windows 和 VScode 终端上使用 VScode。我安装了 virtualEnv (使用>>> pip install virtualenv)并且一切正常。然后我安装了 git,之后我无法停用虚拟环境,也没有看到任何错误!我使用这个命令:
MyVirtualEnvName\scripts\deactivate
我的问题是:现在我无法停用 virtualenv 并且上述命令不起作用!我怎样才能停用这个功能?
$ virtualenv --no-site-packages myenv
The --no-site-packages flag is deprecated; it is now the default behavior.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 8, in <module>
load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 928, in main
never_download=options.never_download)
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1029, in create_environment
site_packages=site_packages, clear=clear))
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 1154, in install_python
mkdir(lib_dir)
File "/usr/local/lib/python2.7/dist-packages/virtualenv-1.7.1.2-py2.7.egg/virtualenv.py", line 399, in mkdir
os.makedirs(path)
File "/usr/lib/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/usr/lib/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/usr/lib/python2.7/os.py", line 157, in makedirs …Run Code Online (Sandbox Code Playgroud) 我的系统上有很多与python相关的软件包,它们对应不同版本的python.
我认为最佳实践不应该保留这么多版本的python,但我必须这样做,因为对linux的依赖有点复杂.
那么在编写python时是否有关于如何保持干净的开发环境的建议?
我系统中与python相关的细节如下:
python
python python2.4 python2.6 python_bk_24
python2 python26 python2.6-config
[mirror@home project]$ rpm -qa | grep python
python-sqlite-1.1.7-1.2.1
python-setuptools-0.6c5-2.el5
python-pip-0.8-1.el5
dbus-python-0.70-9.el5_4
python-elementtree-1.2.6-5
python-iniparse-0.2.3-4.el5
rpm-python-4.4.2.3-9.el5
libselinux-python-1.33.4-5.7.el5
python-libs-2.4.3-46.el5_8.2
python-devel-2.4.3-46.el5_8.2
ipython-0.8.4-1.el5
audit-libs-python-1.7.7-6.el5_3.3
python-urlgrabber-3.1.0-5.el5
python26-2.6.8-1.el5
python-2.4.3-46.el5_8.2
python26-distribute-0.6.10-4.el5
python26-virtualenv-1.5.1-3.el5
python26-libs-2.6.8-1.el5
python26-devel-2.6.8-1.el5
python-virtualenv-1.7-1.el5
libxml2-python-2.6.26-2.1.15.el5_8.2
[mirror@home project]$ python -V
Python 2.4.3
Run Code Online (Sandbox Code Playgroud) python development-environment virtualenv production-environment
我已经开始使用virtualenv了,我有一个疑问,任何提示都会受到欢迎.
这是我的情景:
我激活了virtualenv并安装了一个包XXX(使用apt-get),它在我的virtualenv/site-packages中部署了一些python的东西.
停用virtualenv
运行apt-get upgrade XXX
在这种情况下,XXX的python东西会发生什么?它安装在全球网站包中?有什么东西可以打破?
对不起,如果这是一个愚蠢的问题,但部署python包对我来说有点模糊:/
python ×10
virtualenv ×10
django ×3
apache ×1
permissions ×1
pip ×1
python-3.x ×1
sudo ×1
terminal ×1