我知道之前已经问过这个问题。我已经完成了所有的建议,但我仍然遇到了问题。
我有一个脚本file_rename_script.py
,我已经制作了可执行文件,并且我已经远离了路径,以确保它按预期工作,一切都很顺利。但是,当我将该脚本移动到我的路径时,我得到以下内容:
/Users/Nick/bin/file_rename_script.py: line 1: import: command not found
from: can't read /var/mail/datetime
/Users/Nick/bin/file_rename_script.py: line 4: syntax error near unexpected token `('
/Users/Nick/bin/file_rename_script.py: line 4: `current_directory = os.listdir(os.getcwd())'
这是文件的样子:
#!/usr/bin/env python3
import os, time
from datetime import datetime
current_directory = os.listdir(os.getcwd())
files = [f for f in os.listdir(os.getcwd()) if os.path.isfile(f)]
for file in files:
file_name, file_extension = os.path.splitext(file)
create_date = datetime.fromtimestamp(os.path.getctime(file)).strftime('%Y_%m_%d')
prompt_user = "What would you like to name " + file + " to? "
user_response = input(prompt_user)
if user_response:
os.rename(file, create_date + "-" + user_response.replace(" ", "_") + file_extension)
print("Renamed your file to", create_date + "-" + user_response.replace(" ", "_") + file_extension)
print()
else:
print(file, "was not changed")
print()
为什么我的路径上无法运行?另请注意,我已将shebang设置为#!/usr/local/bin/python3
,但没有成功。
理想情况下,我希望将此文件保存在其他位置,并且我希望将其作为路径中的别名进行符号链接。
是什么给出了?
答案 0 :(得分:2)
错误表明she-bang不工作,shell试图直接将你的python代码(/Users/Nick/bin/file_rename_script.py)作为shell脚本运行,而不是使用python解释器...... / p>
首先验证如果运行/usr/bin/env python3
,您会收到Python提示。如果没有,请尝试通过运行which python3
其次,仔细检查she-bang行#!
之前是否没有空格或空行。如果要在Windows上创建文件,请保存不带BOM的文件(这是文件开头的不可见字符)。行必须以换行符(\n
)结束。您可以运行head
和od
从文件的第一行打印字节(字符):
head -1 /Users/Nick/bin/file_rename_script.py | od -cx
应打印(第一个字符为#
,最后一个字符为\n
):
0000000 # ! / u s r / b i n / e n v p
2123 752f 7273 622f 6e69 652f 766e 7020
0000020 y t h o n 3 \n
7479 6f68 336e 000a
0000027
答案 1 :(得分:0)
如果使用windows或linux,则应将python exe位置添加到环境路径。
对于寡妇和Linux 将python exexutable路径变量添加到路径
如果您使用虚拟环境,请首先激活虚拟环境。添加虚拟环境python包路径。如
!#env python
必须将脚本添加到env的上层目录中
如果使用虚拟环境,必须运行env调用env / Scripts / activate
目录结构应该是
应用
- 环境
- yourscript.py
通过pip安装虚拟环境。