gpt4 book ai didi

python - 如何在 Sublime Text 2 插件中包含第三方 Python 包

转载 作者:IT老高 更新时间:2023-10-28 22:12:31 26 4
gpt4 key购买 nike

我正在编写一个使用模块 SEAPI.py 的 sublime text 2 插件。它本身导入 requests module .

由于 sublime text 2 使用它自己的嵌入式 python 解释器,它没有看到我的 ubuntu 机器中安装的 requests 模块(我收到以下错误:ImportError: No module named requests)。

到目前为止,我能找到的最佳解决方案是将“请求”模块(整个文件目录)从/usr/lib/python2.7/dist-packages/requests 复制到 sublime text packages 目录中的插件目录中.但在那之后,它说它找不到'urllib3'模块。

有没有更好的方法来导入 requests 模块,这样我就不必将所有文件复制到我的插件目录中?

我目前使用的代码如下:

MyPlugin.py

import sublime
import sublime_plugin
import SEAPI
...

SEAPI.py

import requests
try:
import simplejson as json
except:
import json
from time import time, sleep
...

编辑:选择的答案是正确的,并且解决了我的主要问题,但是使用当前版本的“请求”和嵌入式 sublime text 2 解释器存在不同的问题。 ST2 的 python 缺少常规 2.7 python 中存在的各种模块(例如'fileio')。

我已经通过使用此处的“请求”模块解决了这个问题: https://github.com/bgreenlee/sublime-github

我不得不将 'urllib3/response.py' 文件编辑为:

try:
from cStringIO import StringIO as BytesIO
except ImportError:
pass # _fileio doesn't seem to exist in ST's python in Linux, but we don't need it

最佳答案

您需要将完整的请求分发与您的 Python 包捆绑在一起,然后修改 Python 的 sys.path(它在其中查找模块)以指向包含 requests 文件夹的文件夹.

  • 从 PyPi 下载 Requests 库并在插件文件夹下手动解压

  • 在插件中导入请求之前,将 corrcet 文件夹附加到 sys.path 以指向可以找到请求导入的文件夹

(未经测试的)代码应如下所示:

  import sys 
import os

# request-dists is the folder in our plugin
sys.path.append(os.path.join(os.path.dirname(__file__), "requests-dist"))

import requests

这也假设当你使用 easy_installpip< 安装模块时 requests setup.py 不会做任何黑客攻击

您也可以直接导入 requests zip,因为 Python 支持从 ZIP 文件导入,假设请求以兼容的方式分发。示例(高级):

https://github.com/miohtama/ztanesh/blob/master/zsh-scripts/python-lib/zipimporter.py

更多关于 sys.path 技巧 (2004)

http://www.johnny-lin.com/cdat_tips/tips_pylang/path.html

关于python - 如何在 Sublime Text 2 插件中包含第三方 Python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15180537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com