python - 更新指向包含空格的保管箱目录的 PYTHONPATH 变量

标签 python macos bash github dropbox

我正在尝试导入我编写的 python 模块,该模块包含在路径包含空格的 Dropbox 文件夹中。关注评论here ,我不想每次使用 python 时都执行 sys.path.append(path_to_repository),我宁愿只更新我的 bash 配置文件以指向正确的 Dropbox 文件夹一次。

我已尝试通过将以下行附加到我的 ~/.bash_profile 来调整上一页中的代码:

PYTHONPATH ="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"
export ${PYTHONPATH}

当我关闭终端窗口并重新打开时,我收到以下错误消息:

-bash: PYTHONPATH: command not found
-bash: export: `/Users/myusername/Dropbox': not a valid identifier
-bash: export: `(projectname)/REPOSITORY_NAME': not a valid identifier

并且(不足为奇)当我尝试从 python 中的存储库导入时,我发现找不到模块:

>>> from REPOSITORY_NAME import myfile
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named REPOSITORY_NAME

有人有解决办法吗? 我正在考虑的一些问题/可能性 -

1)和我的Anaconda配置有关系吗? (Anaconda 在虚拟环境中运行)

2) 与Dropbox安装python代码的文件夹有关系吗?

3)难道是pythonpath中的空格没有被正确解释?

4) 这是同步到 github 和 bitbucket 的同一个目录有什么问题吗?

预先感谢您的帮助。

*编辑:

解决方案似乎是 1) 删除第一行中的额外空间和 2) 在第二行中将 ${PYTHONPATH} 替换为 PYTHONPATH,即将 ~/.bash_profile 调整为具有以下行:

PYTHONPATH="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"
export PYTHONPATH

最佳答案

我之前遇到过类似的问题。错误消息表明问题出在目录路径中的空格 - bash_profile 被空格截断并将路径拆分为 2。这可能是 bash 处理空格的方式有问题,但我不是100% 确定。

这是一个对我有用的解决方案:

export PYTHONPATH="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"

它与您拥有的类似,但 export 和 PYTHONPATH 在同一行。我认为这不会干扰 Dropbox、Github、Bitbucket、Anaconda(或任何其他 virtualenv,如 Enthought)等,只要您在每个包含 .py 文件的目录中都有一个 _init__.py' 文件。

希望对你有帮助

关于python - 更新指向包含空格的保管箱目录的 PYTHONPATH 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493244/

相关文章:

bash - 在 CentOS 6 中添加/更新/查找 .bashrc 或 .bash_profile 以使 Laravel 新命令正常工作

bash - "dir/*: No such file or directory"与 find -exec ... "{}/*"

python - 文件路径中存在反斜杠时意味着什么?

macos - 我如何向其他 Cocoa 应用程序发出首选项已更改的信号?

没有编辑菜单的对话框中的 Cocoa 键盘快捷键

linux - 如何从终端更改文件的 MIME 类型?

django - 是否可以在 zsh 中使用 Django bash 完成

python - 使用 BeautifulSoup 查找所选选项

python - 使用 Zip 函数在 CSV 中创建数据长度不同的列

Python如何发出curl请求