我有一个本地脚本,希望使用我的本地python安装程序在远程服务器上运行。我需要这样做,因为我安装了无法在远程服务器上安装的特定软件包。
我尝试了两种找到的解决方案,但是都没有用。
ssh user@remote python -u < script.py
和
cat script.py | ssh user@remote python -
以上两种情况都给我一个ImportError,用于仅安装在本地计算机上的模块。我绝对可以使用安装在服务器上运行代码的权限,但自己不能安装任何内容。
我尝试克隆服务器的python,但出现此错误:
user@server:~$ conda create -n my_root --clone="/opt/anaconda"
Source: /opt/anaconda
Destination: /home/user/.conda/envs/my_root
The following packages cannot be cloned out of the root environment:
- conda-4.3.17-py27_0
- conda-env-2.6.0-0
Fetching package metadata .........
Packages: 153
Files: 0
ERROR conda.core.link:_execute_actions(335): An error occurred while
installing package 'defaults::pycairo-1.10.0-py27_0'.
IOError(13, 'Permission denied')
Attempting to roll back.
IOError(13, 'Permission denied')
答案 0 :(得分:1)
如果在远程计算机上安装了python,则只需pip install
script.py
中使用的任何模块。您可以检查其是否安装了python -V
。
答案 1 :(得分:0)
除非在远程服务器上允许运行脚本,否则无法在远程服务器上运行脚本。您可以想象,如果可以的话,这将是一个非常严重的安全漏洞!
您要实现的目标是什么?
答案 2 :(得分:0)
如果存在不能将模块安装在服务器的全局pip目录中的限制,则可以使用Python虚拟环境将脚本与服务器操作系统安装模块进行虚拟隔离。