1

我正在尝试将模块路径附加到我的 PYTHONPATH 环境变量中,如下所示

import sys
sys.path.append(0,"/path/to/module/abc.py")

我收到语法错误

Syntax error: word unexpected (expecting ")")

任何人都可以帮助我正确的语法sys.path.append()吗?

4

4 回答 4

1

两个答案都是正确的。

append()默认情况下将您的参数添加到列表的末尾。当您向它传递 2 个参数并且它只接受 1 个参数时,它会引发语法错误。

根据您的语法判断,您希望将路径添加到路径的前面,因此insert()使用的方法也是如此。

您可以在有关数据结构的文档中阅读更多信息

list.append(x)

在列表末尾添加一个项目;相当于 a[len(a):] = [x]。

list.insert(i, x)

在给定位置插入一个项目。第一个参数是要插入之前的元素的索引,因此 a.insert(0, x)插入到列表的前面,a.insert(len(a), x)相当于a.append(x).

import sys
# Inserts at the front of your path
sys.path.insert(0, "/path/to/module/abc.py")
# Inserts at the end of your path
sys.path.append('/path/to/module/abc.py')
于 2013-05-10T08:57:44.460 回答
0

如果您愿意,可以插入它而不是附加:

import sys

sys.path.insert(0, "/home/btilley/brads_py_modules")

import your_modules
于 2013-05-08T13:20:36.737 回答
0

为什么要使用 import sys sys.path.append(0,"/path/to/module/abc.py");

试试看嘛:

import sys

sys.path.append('/path/to/module/abc.py')
于 2013-05-08T13:16:54.427 回答
0

在这里,我展示了一个帮助将模块附加到路径的示例。路径是一个存储目录位置的列表。

def _get_modules(self, paths, toplevel=True):
    """Take files from the command line even if they don't end with .py."""
    modules = []
    for path in paths:
        path = os.path.abspath(path)
        if toplevel and path.endswith('.pyc'):
            sys.exit('.pyc files are not supported: {0}'.format(path))
        if os.path.isfile(path) and (path.endswith('.py') or toplevel):
            modules.append(path)                        
        elif os.path.isdir(path):                       
            subpaths = [
                os.path.join(path, filename)
                for filename in sorted(os.listdir(path))]           
            modules.extend(self._get_modules(subpaths, toplevel=False))
        elif toplevel:
            sys.exit('Error: %s could not be found.' % path)
    return modules
于 2017-03-24T05:03:15.183 回答