当前位置: 首页 > 面试题库 >

在pyenv virtualenv下运行的python脚本使用的shebang

糜俊彦
2023-03-14
问题内容

当应该从python运行脚本时pyenv virtualenv,文件的正确Shebang是什么?

作为示例测试用例,尚未pandas安装我的系统(OSX)上的默认python 。pyenv
virtualenvvenv_name可以。我试图从virtualenv获取python可执行文件的路径。

$ pyenv activate venv_name
(venv_name)$ which python
/Users/username/.pyenv/shims/python

所以我举了一个例子script.py

#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'

但是,当我尝试运行脚本时,出现错误:

(venv_name) $ ./script.py
./script.py: line 2: import: command not found
./script.py: line 3: print: command not found

尽管在命令行上运行该路径可以正常工作:

(venv_name) $ /Users/username/.pyenv/shims/python script.py
success

(venv_name) $ python script.py # also works
success

什么是适当的shebang?理想情况下,我想要一些通用的东西,以便它指向我当前使用的venv的python。


问题答案:

我真的不知道为什么用全路径调用解释器对您不起作用,我一直都在使用它,但是如果您想使用环境中的python解释器,应该这样做:

#!/usr/bin/env python

这样,您就可以在环境中搜索要使用的python解释器。



 类似资料:
  • 当一个python脚本应该从运行时,该文件的正确Sheang是什么? 作为一个示例测试用例,我的系统(OSX)上的默认python没有安装。pyenv虚拟环境可以。我试图从虚拟环境中获取python可执行文件的路径。 所以我做了我的示例: 但是当我尝试运行脚本时,我收到了一个错误: < br >尽管在命令行上运行该路径工作正常: 什么是合适的sheang?理想情况下,我想要一些通用的东西,这样它就

  • 问题内容: 我有一个在Linux上运行的Python(3)脚本,称为主脚本,该脚本必须从专有DLL调用例程。到目前为止,我已经使用Wine使用以下结构解决了这个问题: 脚本 dll_call.py 由Wine下安装的Windows Python(3)解释器执行。它将返回值转储到一个文件中,然后由等待的主脚本拾取该文件。如果我必须连续执行几次,它不是完全可靠且令人痛苦的缓慢。 我想一次启动脚本 dl

  • 问题内容: 我想从C调用Python脚本,并传递脚本中所需的一些参数。 我要使用的脚本是mrsync或多播远程同步。我通过调用以下命令从命令行进行了工作: -m是包含目标ip地址的列表。-s是包含要同步的文件的目录。-t是目标计算机上将放置文件的目录。 到目前为止,通过使用以下C程序,我设法运行了没有参数的Python脚本: 这很好。但是,我找不到如何将这些参数传递给方法的方法。 问题答案: 似乎

  • 问题内容: 我有一个想要添加到cron的python脚本。 脚本具有+ x权限。 如何将其添加到crontab?(例如,我希望它每分钟运行一次)。 重要提示:当我(使用外壳)导航到脚本的文件夹时,无法使用“ ./script_name.py”运行它;它不起作用。但是,当我使用“ Python script_name.py”运行它时,一切正常。 问题答案: 从您应该运行该脚本和脚本符合下列条件: 可

  • 问题内容: 这可能是一个非常简单的问题,但是如何每两天在我的fedora dist上运行一个python脚本? 谢谢 安东尼斯 问题答案: 这是关于cron的问题。首先是在python脚本顶部添加SHEBANG行。 使您的脚本可执行 然后执行crontab -e并添加

  • 问题内容: 我正在尝试运行Python工作。我创建了以下文件夹: C:\ Users \ herod \ jenkins_ws \ workspace \ window_testing 并添加了脚本“ testing.py”。 该脚本非常简单: 但是从Jenkins运行它时出现以下错误(如果我从命令行运行它会起作用): 我究竟做错了什么 ? 这是我尝试过的: 在构建部分的作业配置中,我选择“执行p