繁体   English   中英

从 Windows 命令提示符复制 Anaconda 环境

[英]Replicating Anaconda Environment From Windows Command Prompt

我想从 Windows 命令提示符运行 Python 代码。 当我从 Windows 命令提示符运行同一脚本时,我在 Anaconda 环境(即来自 Anaconda Prompt、Spyder 或 Jupyter Notebook)中运行的脚本中的某些功能不可用。 例如,当脚本在 Anaconda 环境中运行时,Pandas 中的 read.csv 方法可以读取 2.8 GB 制表符分隔的文本文件,但是当在该环境中从 Windows 命令提示符运行相同的脚本时,我会收到以下消息我在其中安装了 Python 的副本:“pandas.errors.ParserError:错误标记数据。C 错误:内存不足”。 我假设 Anaconda 环境安装了一个用于读取大文本文件的包。 我已经尝试从我的主目录运行脚本,默认情况下 Anaconda 存储我的 Python 脚本,但我仍然收到相同的“内存不足”消息。 我还从 C:[my home directory]\AppData\Local\Continuum\anaconda3 运行脚本,显然安装了 Anaconda,但我遇到了同样的内存问题。 有人知道如何在 Anaconda Prompt、Spyder 和 Jupyter Notebooks 使用的相同环境中运行 Python 脚本吗?

这可能是由于使用不同的 Python 解释器造成的。 例如,Windows 中的 32 位版本的 Python 只能使用2GB 的内存 您可能会在命令行上使用它,而不是在笔记本中使用 64 位解释器。

使用sys包比较环境。 从命令行尝试以下命令。

python -c "from __future__ import print_function; import sys; print(sys.version); print(sys.executable)"

我在下面分享了一个例子。 在这种情况下,我从 Anaconda Prompt 内部运行这些命令,它随(所有?)版本的 Anaconda 一起安装。

(base) C:\Users\my.user.name>python -c "from __future__ import print_function; import sys; print(sys.version); print(sys.executable)"
3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]
C:\ProgramData\Anaconda3\python.exe

(base) C:\Users\my.user.name>conda env list
# conda environments:
#
base                  *  C:\ProgramData\Anaconda3
colors                   C:\Users\my.user.name\.conda\envs\colors
someotherenv             C:\Users\my.user.name\.conda\envs\someotherenv
hellostevep              C:\Users\my.user.name\.conda\envs\hellostevep

(base) C:\Users\my.user.name>conda activate colors

(colors) C:\Users\my.user.name>python -c "from __future__ import print_function; import sys; print(sys.version); print(sys.executable)"
3.7.2 (default, Feb 21 2019, 17:35:59) [MSC v.1915 64 bit (AMD64)]
C:\Users\my.user.name\.conda\envs\colors\python.exe

请注意, python.exe因我的环境而异。 您的操作系统上可能有与 Anaconda 不同的其他 Python 环境。 例如,您可能为 Windows PowerShell 设置了 Python 环境。 如果是这样,您也可以在 PowerShell 提示符下运行命令python -c "from __future__ import print_function; import sys; print(sys.version); print(sys.executable)"然后比较输出。

在运行 Pandas 方法的 Jupyter Notebook 中,尝试在一个单元格中运行类似的代码(如下例)。

import sys
print(sys.version)
print(sys.executable)

你得到相同的输出吗?

如果您的笔记本和命令行之间的输出相同,这可能不是您遇到的问题。 如果是这样,您能否分享您从笔记本内部执行的代码以及您在命令行上运行的脚本的代码?

我有 Miniconda,但我想我的解决方案也可以适用于 Anaconda。 从 Windows 命令提示符我运行

"C:\Users\<username>\Miniconda3\Scripts\activate.bat"  environment_to_use

我得到了一个工作的 Conda 环境。 这样我还可以通过拖放运行 python 脚本。 我创建了一个指向需要特定 Conda 环境的真实 python 脚本的链接,并将链接的Destination属性更改为

"C:\Users\<username>\Miniconda3\Scripts\activate.bat" environment_to_use  &&  "C:\Users\<username>\Miniconda3\envs\<environment_to_use>\python.exe"  "<path>\my_python_script.py"

这样,如果我在指向 python 脚本的链接上放置任何文件,python 脚本将使用放置的文件作为参数运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM