我的问题涉及这个问题:在代码中安装python模块,但涉及升级模块.
我试过了
packages=['apscheduler','beautifulsoup4','gdata']
def upgrade(packages):
for package in packages:
pip.main(['install --upgrade', package])
Run Code Online (Sandbox Code Playgroud)
和
def upgrade(packages):
for package in packages:
pip.main(['install', package + ' --upgrade'])
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 AWS Lambda 函数中 pip install 一个包。
Amazon 推荐的方法是创建一个包含依赖项和 python 函数的压缩部署包(如AWS Lambda 部署包中的 Python 中所述)。但是,这会导致无法在 AWS Lambda GUI 中使用内联代码编辑来编辑 Lambda 函数。
因此,我想在 AWS Lambda 函数本身中 pip install 包。在 AWS Lambda 中,除了 /tmp/ 目录之外,文件系统是只读的,因此我尝试将 pip install 安装到 /tmp/ 目录。该函数每天只调用一次,所以我不介意每次运行该函数时重新 pip 安装包所需的额外几秒钟。
我的尝试
def lambda_handler(event, context):
# pip install dependencies
print('begin lambda handler')
import subprocess
import sys
subprocess.call('pip install cryptography -t /tmp/ --no-cache-dir'.split())
from cryptography.fernet import Fernet
pwd_encrypted = b'gAAAAABeTcT0OXH96ib7TD5-sTII6jMfUXPhMpwWRCF0315rWp4C0yav1XAPIn7prfkkA4tltYiWFAJ22bwuaj0z1CKaGl8vTgNd695SDl25HnLwu1xTzaQ='
key = b'fP-7YR1hUeVW4KmFmly4JdgotD6qjR52g11RQms6Llo='
cipher_suite = Fernet(key)
result = cipher_suite.decrypt(pwd_encrypted).decode('utf-8')
print(result) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Java 中的 Jython Standalone jar 安装 Python 库。
我的代码似乎将 PIP 7.1.2 安装在独立 jar 旁边的文件夹中,但是一旦我尝试使用 PIP 升级自身,它就会因 ZipImportError 而失败。
错误消息似乎抱怨无法打开 PIP 轮文件,但日志似乎显示它已经可以打开几次了。
import org.python.util.PythonInterpreter;
public class PipInstaller{
public void installPip(){
PythonInterpreter python = new PythonInterpreter();
runEnsurePip(python);
upgradePip(python);
python.close();
}
private void runEnsurePip(PythonInterpreter python){
StringBuilder script = new StringBuilder();
script.append("import ensurepip\n");
script.append("ensurepip._main()");
python.exec(script.toString());
}
private void upgradePip(PythonInterpreter python){
StringBuilder script = new StringBuilder();
script.append("import pip\n");
script.append("pip.main(['install', '--upgrade', 'pip'])");
python.exec(script.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
这些是堆栈跟踪的最后几行:
File "/tmp/tmpnmI49K/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/html5lib/html5parser.py", line 27, in parse
File "/tmp/tmpnmI49K/pip-7.1.2-py2.py3-none-any.whl/pip/_vendor/html5lib/treebuilders/__init__.py", line …Run Code Online (Sandbox Code Playgroud) 与这里类似的问题,但现在在Python软件包上。当前,Azure ML中缺少CVXPY。我还试图让其他求解器(例如GLPK,CLP和COINMP)在Azure ML中工作。
如何在Azure ML中安装Python包?
有关尝试安装Azure ML中找不到的Python软件包的更新。
我按照Peter Pan的指示进行了操作,但是我认为Azure ML中的Anaconda 4和Python 3.5的32位CVXPY文件是错误的,日志和错误在此处。
Run Code Online (Sandbox Code Playgroud)[Information] Running with Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)]
使用win_amd64文件更新2(在此处粘贴)
Run Code Online (Sandbox Code Playgroud)[Information] Extracting Script Bundle.zip to .\Script Bundle [Information] File Name Modified Size [Information] cvxopt-1.1.9-cp35-cp35m-win_amd64.whl 2017-06-07 01:03:34 1972074 [Information] __MACOSX/ 2017-06-07 01:26:28 0 [Information] __MACOSX/._cvxopt-1.1.9-cp35-cp35m-win_amd64.whl 2017-06-07 01:03:34 452 [Information] cvxpy-0.4.10-py3-none-any.whl 2017-06-07 00:25:36 300880 [Information] __MACOSX/._cvxpy-0.4.10-py3-none-any.whl 2017-06-07 00:25:36 444 [Information] ecos-2.0.4-cp35-cp35m-win_amd64.whl 2017-06-07 01:03:40 56522 [Information] …
我正在开发一个 Python 程序,该程序将分发给我们的客户。
他们的要求是程序应该在没有他们手动干预的情况下处理一切。
如何在执行代码时检查并安装Python中缺少的模块?在 R 中,我可以使用下面提供的代码。
如何在 Python 中复制类似的东西?
# Check and install missing packages in R
list.of.packages <- c("RDCOMClient", "htmlTable")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages) > 0) {
install.packages(new.packages)
}
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 14.04 上工作,我的机器上有多个 Python 版本(它们包括 python2.7 和 python3.4)。几天前,我安装simplejson在我的系统上。我不记得我是怎么做到的,但我想它一定与pip install simplejson. 但是,现在当我尝试安装任何 python 包时,一个奇怪的问题开始出现。例如,刚才我尝试安装Tkinterusingsudo pip3.4 install Tkinter并抛出以下错误:
Traceback (most recent call last):
File "/usr/local/bin/pip3.4", line 9, in <module>
load_entry_point('pip==1.5.4', 'console_scripts', 'pip3.4')()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 351, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2363, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2088, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
from pip.vcs import git, mercurial, subversion, bazaar …Run Code Online (Sandbox Code Playgroud) 我正在用python创建一个股票交易监控器,并且在pandas_datareader模块上遇到了问题。该代码中的原始模块为pandas.io.data,但已进行了修订,因为pandas不再支持该模块。这是代码;
import pandas as pd
import pandas_datareader as web
import datetime
start = datetime.datetime(2016, 1, 1)
end = datetime.date.today()
apple = web.DataReader("AAPL", "yahoo", start, end)
type(apple)
Run Code Online (Sandbox Code Playgroud)
该代码带有错误。
Traceback (most recent call last):
File "/Users/euanoflynn/anaconda/tests/Tests.py", line 2, in <module>
import pandas_datareader as web # Package and modules for importing data; this code may change depending on pandas version
ModuleNotFoundError: No module named 'pandas_datareader'
Run Code Online (Sandbox Code Playgroud)
我觉得我做错了什么。
如果需要,我可以发布更多信息。
我想Python 3在运行时安装和导入模块。
我正在使用以下函数在运行时安装模块pip:
def installModules(modules):
for module in modules:
print("Installing module {}...".format(module))
subprocess.call([sys.executable, "-m", "pip", "install", "--user", module])
Run Code Online (Sandbox Code Playgroud)
该模块已成功安装,但在安装完成后,我无法在运行时导入它。所以如果我这样做:
modules = [ "wget", "zipfile2" ]
installModules(module)
import wget
Run Code Online (Sandbox Code Playgroud)
我得到一个ModuleNotFoundError. 如果在那之后,我开始另一个 Python 3 会话,我可以使用模块 eg wget,这意味着模块已经安装,但它们不可用于当前的 Python 3 会话。
是否可以在 Python 3 中安装然后在同一个 Python 3 会话中导入已安装的模块,即安装后?
谢谢!
编辑:
在 VirtualBox 内安装新的 Ubuntu 19.04 后sudo apt-get install python3-pip,运行以下脚本:
import os, sys
import subprocess
def installModules(modules):
for module in modules:
print("Installing module {}...".format(module))
subprocess.call([sys.executable, …Run Code Online (Sandbox Code Playgroud) 我想从 Python 交互式 shell 而不是终端或命令提示符安装第三方 Python 模块。我需要运行哪些 Python 指令来执行此操作,以便导入已安装的模块并开始使用它?
(对于那些问我为什么要这样做的人:我需要可靠的说明来为不知道如何导航命令行、不知道如何设置 PATH 环境变量的用户安装第三方模块,可能或可能没有安装多个版本的 Python,并且也可以在 Windows、Mac 或 Linux 上运行,因此说明将完全不同。这是一个独特的设置,“仅使用终端窗口”在这个特殊情况。)
python ×7
pip ×6
python-3.x ×2
aws-lambda ×1
azure ×1
azure-machine-learning-studio ×1
cvxpy ×1
java ×1
json ×1
jython ×1
simplejson ×1
subprocess ×1