标签: python-module

Python - 导入 global/site-packages 模块而不是本地目录中的同名文件

我正在使用 python 和 virtualenv/pip。我有一个通过 pip 安装的模块test_utils(它是 django-test-utils)。在我的一个 django 应用程序中,我想导入该模块。但是,我test_utils.py在同一目录中还有另一个文件。如果我去import test_utils,那么它会导入这个本地文件。

是否可以让 python 使用非本地/非相对/全局导入?我想我可以重命名 my test_utils.py,但我很好奇。

python django import python-module

2
推荐指数
1
解决办法
3224
查看次数

导入 mod_python 时出错

完成安装 mod_python 后,我收到 500 内部服务器错误。我查了一下日志,上面写着:python_handler:无法获取/创建解释器。

然后我打开一个python终端并测试我是否可以导入mod_python。然后我得到如下错误:

>>> import mod_python
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/mod_python/__init__.py", line 25, in <module>
    import version
  File "/usr/local/lib/python2.7/dist-packages/mod_python/version.py", line 3
    version = "fatal: Not a git repository (or any of the parent directories): .git
                                                                              ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

我使用命令 --with-python=/usr/bin/python 安装了 mod_python,版本为 2.7.3。

任何想法为什么会发生这种情况?先谢谢了!

编辑:我试图用 python2.6 重新安装 mod_python,我发现我错过了安装过程中发布的 SyntaxError。

SyntaxError: ('EOL while scanning string literal', ('/usr/local/lib/python2.6/site-packages/mod_python/version.py', 3, 79, 'version = "fatal: Not a git repository …
Run Code Online (Sandbox Code Playgroud)

python mod-python python-module

2
推荐指数
1
解决办法
2293
查看次数

在你的 python 脚本中包含 python 模块(依赖项)安装

在运行实际/主脚本之前,有没有办法首先包含/调用 python 模块(依赖项)安装?

例如,在我的 main.py 中:

import os, sys
import MultipartPostHandler

def main():
    # do stuff here
Run Code Online (Sandbox Code Playgroud)

但是 MultipartPostHandler 还没有安装,所以我想要的是在实际运行 main.py 之前先安装它......但是以自动化的方式。当我说自动时,我的意思是我只会调用脚本一次以启动依赖项安装,然后是主脚本的实际功能。(不知何故,有点类似于maven。但我只需要安装部分)

我已经知道 setuptools 的基础知识。问题是我可能必须分别调用安装 (setup.py) 和主脚本 (main.py)。

任何想法都非常感谢。提前致谢!

python python-module

2
推荐指数
1
解决办法
1万
查看次数

如何在脚本中使用 IPython 魔法来自动重新加载模块?

我试图在运行脚本时包含一些 IPython 内置魔法函数来自动重新加载模块。所以我试过这个:

if __IPYTHON__:
    %load_ext autoreload
    %autoreload 2
Run Code Online (Sandbox Code Playgroud)

但 IPython 返回:

%load_ext autoreload
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

python python-module ipython

2
推荐指数
1
解决办法
3834
查看次数

“pip install models” - “python setup.py Egg_info”失败,错误代码为 1

尝试安装“模型”模块后,我收到此错误:

C:\Users\Filip>pip install models
Collecting models
Using cached https://files.pythonhosted.org/packages/92/3c/ac1ddde60c02b5a46993bd3c6f4c66a9dbc100059da8333178ce17a22db5/models-0.9.3.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\Filip\AppData\Local\Temp\pip-install-_exhlsc1\models\setup.py", line 25, in <module>
    import models
  File "C:\Users\Filip\AppData\Local\Temp\pip-install-_exhlsc1\models\models\__init__.py", line 23, in <module>
    from base import *
ModuleNotFoundError: No module named 'base'

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Filip\AppData\Local\Temp\pip-install-_exhlsc1\models\
Run Code Online (Sandbox Code Playgroud)

如果我尝试安装模块“base”,则会出现此错误:

C:\Users\Filip>pip install base
Collecting base
Using cached https://files.pythonhosted.org/packages/1b/e5/464fcdb2cdbafc65f0b2da261dda861fa51d80e1a4985a2bb00ced080549/base-1.0.4.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python cmd pip python-module

2
推荐指数
1
解决办法
2万
查看次数

错误:找不到重新匹配的分布

我正在尝试使用 Python 应用程序在 Cpanel 上运行 Python 脚本,当我在文本文件中添加所有模块并运行 pip install 时,出现此错误。

错误:找不到满足重新要求的版本错误:找不到重新匹配的发行版在此输入图像描述

python python-module cpanel

2
推荐指数
1
解决办法
1万
查看次数

如何在Python中压缩文件?

我一直在尝试制作一个 python 脚本来使用 zipfile 模块压缩文件。虽然文本文件被做成了zip文件,但它似乎并没有压缩它;testtext.txt 是 1024KB,而 testtext.zip(代码的创建)也等于 1024KB。但是,如果我在文件资源管理器中手动压缩 testtext.txt,生成的 zip 文件将被压缩(具体为 2KB)。如果可能的话,我该如何克服这个逻辑错误?

下面是我用来(不成功)压缩文本文件的脚本。

from zipfile import ZipFile

textFile = ZipFile("compressedtextstuff.zip", "w")
textFile.write("testtext.txt")
textFile.close()
Run Code Online (Sandbox Code Playgroud)

python compression zip python-module txt

2
推荐指数
1
解决办法
6708
查看次数

Docker中的Python脚本在子目录中找不到模块

我的项目结构如下:

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_script.Dockerfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.rst\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 log\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.log\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pickles\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements_my_script.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 modules\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 other_scripts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 logging_utils.py\n
Run Code Online (Sandbox Code Playgroud)\n

my_script.Dockerfile如下:

\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 my_script.Dockerfile\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.rst\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 log\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.log\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pickles\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements_my_script.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 modules\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 module.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 other_scripts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 my_script.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __pycache__\n\xe2\x94\x82\xc2\xa0\xc2\xa0     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 logging_utils.py\n
Run Code Online (Sandbox Code Playgroud)\n …

python python-module docker

2
推荐指数
1
解决办法
2896
查看次数

如何同时使用Python openai客户端与Azure和OpenAI?

OpenAI 提供了一个 Python 客户端,目前版本为 0.27.8,它同时支持 Azure 和 OpenAI。

\n

以下是如何使用它为每个提供商调用 ChatCompletion 的示例:

\n
# openai_chatcompletion.py\n\n"""Test OpenAI\'s ChatCompletion endpoint"""\nimport os\nimport openai\nimport dotenv\ndotenv.load_dotenv()\nopenai.api_key = os.environ.get(\'OPENAI_API_KEY\')\n\n# Hello, world.\napi_response = openai.ChatCompletion.create(\n  model="gpt-3.5-turbo",\n  messages=[\n    {"role": "user", "content": "Hello!"}\n  ],\n  max_tokens=16,\n  temperature=0,\n  top_p=1,\n  frequency_penalty=0,\n  presence_penalty=0,\n)\n\nprint(\'api_response:\', type(api_response), api_response)\nprint(\'api_response.choices[0].message:\', type(api_response.choices[0].message), api_response.choices[0].message)\n
Run Code Online (Sandbox Code Playgroud)\n

和:

\n
# azure_openai_35turbo.py\n\n"""Test Microsoft Azure\'s ChatCompletion endpoint"""\nimport os\nimport openai\nimport dotenv\ndotenv.load_dotenv()\n\nopenai.api_type = "azure"\nopenai.api_base = os.getenv("AZURE_OPENAI_ENDPOINT") \nopenai.api_version = "2023-05-15"\nopenai.api_key = os.getenv("AZURE_OPENAI_KEY")\n\n\n# Hello, world.\n# In addition to the `api_*` properties above, mind the difference in arguments\n# as well …
Run Code Online (Sandbox Code Playgroud)

python python-module azure openai-api openai-whisper

2
推荐指数
1
解决办法
4895
查看次数

在Python中包含外部文件

我正在编写一个运行一些模拟的Python脚本,但它需要很多输入参数(大约20个).所以我想把所有模拟参数都包含在外部文件中.这样做最简单的方法是什么?

我发现的一个答案是Stack Overflow问题如何在给定完整路径的情况下导入模块?,将所有模拟参数放在parm.py文件中,并使用imp包导入该模块.

这将允许运行此脚本的用户提供任何文件作为输入.如果我以这种方式导入模块:

parm = imp.load_source('parm', '/path/to/parm.py')
Run Code Online (Sandbox Code Playgroud)

那么所有参数都必须被引用为

parm.p1, parm.p2
Run Code Online (Sandbox Code Playgroud)

但是,我想在我的脚本中将它们称为p1,p2等.有没有办法做到这一点?

python import python-module

1
推荐指数
1
解决办法
3047
查看次数