python - 如何创建可重定位的 Conda 环境?可行吗?
问题描述
我想做一个可重定位的环境。所以我需要在包安装中使用相对路径。为此,我只需创建一个这样的 Conda 环境:
conda create --prefix env python=3.6.5
activate .\env
然后我像往常一样安装了所需的软件包
pip install package_name
当我想安装自己的软件包时,问题就来了。我已经创建了一个这样的结构,并且我遵循了本教程:
some_root_dir/
|-- setup.py
|-- python_files
|-- |-- runall.py
|-- |-- test0.py
的内容setup.py
是这样的:
from setuptools import setup
setup(
name='my_app',
version='0.1',
description='My app',
keywords="app csv some other word",
url='https://www.my_domain.com/',
author='My name',
author_email='email@email_domain.com',
license='MIT',
packages=['my_package'],
zip_safe=False,
)
但安装后:
cd some_root_dir
pip install .
并将其移动到另一个位置,应用程序中出现的路径就是我所做的路径pip install .
我一直在这里寻找信息,但没有找到任何有用的信息。
我想做的主要步骤
- 创建一个conda环境,用pip或者conda安装一些包,包括我自己的python包
- 将环境文件夹复制到另一台计算机
- 在这台未安装 conda 和 python 的计算机上运行应用程序。如果我使用
python.exe
包含在文件夹中的 python 应该知道包的安装位置以及如何导入它们。
问题
- 如何在环境包中使用相对路径?
- 这是可行的吗?还是我做错了什么?
- 哪些是实现我想要的最佳实践?
- 可重定位环境是否可能?
注意:我使用的是 Windows 10 和 Miniconda 3。
虚拟环境
virtualenv 上的等价物是这样的:
virtualenv --relocatable env_folder
但这是一个实验性功能
更新(2018 年 8 月 7 日)
实际上我想要的是@interfect 在他的评论中所说的,问题就在这里。因此 conda 上的可重定位环境尚不可能
解决方案
如果你把你的包变成一个 conda 包(如果你已经在使用 pip,这很简单),你只需在新机器上 conda 安装你的包,所有的东西都将在安装时重新定位。
这包括任何已编译的库,更不用说脚本中的路径了。Conda 将修改所有内容,因此无论您将其安装在何处,它都能正常工作。
推荐阅读
- inputbox - 用户取消输入框以选择日期时出现运行时错误 - 发生这种情况时找不到要忽略的代码
- excel - 如何根据前一行数据在 Excel 中自动添加新行
- html - HTML 5 语义标签
- hadoop - mapper 和 reducer 任务是如何分配的
- firebase - .orderByChild() 不适用于 Firebase (vue.js)
- r - 尝试更改 ggplot2 中的图例标题和文本
- c# - 同步循环调用的异步方法的任何好处
- c - 确定 C 中 Z-lib 的压缩/未压缩缓冲区大小
- jquery - 如何重定向到本地计算机中的html页面
- python - 使用 vscode 调试 sklearn