如果我正确地关注https://docs.python.org/2/library/site.html,我需要将site-packages目录移动到/usr/lib/python2.7或将sys.prefix更改为/ usr / local。
前者似乎错了。对于后者,我可以找到的选项是直接编辑site.py或重新安装python。编辑site.py是否过于hacky,或者它是标准的事情? (ETA:我认为这是一个标准的事情,因为它就是它的用途。猜猜我真的在问这是否是这种情况下的最佳选择。)
或者我忽略了另一种选择?
/ usr / lib vs / usr / local / lib:
auto@virgo:/etc/apache2$ ls -ld /usr/lib/python2.7/site-packages
ls: cannot access /usr/lib/python2.7/site-packages: No such file or directory
auto@virgo:/etc/apache2$ ls -ld /usr/local/lib/python2.7/site-packages
drwxrwsr-x 2 root staff 4096 Aug 29 2013 /usr/local/lib/python2.7/site-packages
python sys.prefix:
auto@virgo:~$ python
Python 2.7.3 (default, Apr 10 2013, 05:46:21)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.prefix
/usr
谢谢!
答案 0 :(得分:3)
创建sitecustomize.py
或usercustomize.py
并附加到site.PREFIXES
import site
SITEPKGS = '/usr/local/lib/python2.7/site-packages'
site.addsitedir(SITEPKGS)
site.PREFIXES += ['/usr/local']
假设/usr/local/lib/python2.7/site-packages
是/usr/local
网站套件的路径。
来自site docs:
在这些路径操作之后,尝试导入名为
sitecustomize
的模块,该模块可以执行任意特定于站点的自定义。它通常由site-packages目录中的系统管理员创建。如果此导入失败并显示ImportError
异常,则会以静默方式忽略该异常。如果在没有输出流的情况下启动Python,就像Windows上的pythonw.exe
(默认情况下用于启动IDLE)一样,sitecustomize
的尝试输出将被忽略。除ImportError
以外的任何异常都会导致过程无声且可能神秘失败。在此之后,尝试导入名为
usercustomize
的模块,如果ENABLE_USER_SITE
为真,则可以执行任意特定于用户的自定义。此文件旨在在用户site-packages目录中创建(见下文),该目录是sys.path
的一部分,除非-s
禁用。ImportError
将被默默忽略。
注意:usercustomize.py
的位置取决于site.USER_SITE
的值,Linux for Python-2.7的值为~/.local/lib/python2.7/site-packages
。
注意:sitecustomize.py
中的sys.prefix
也将由管理员放置在/usr/local
中的网站包文件夹中。
其他选项是设置环境变量:
将PYTHONUSERBASE
设置为~/.local
,这会将用户基本Python目录的位置从~/.local/lib/python2.7/site-packages
切换为您设置的任何位置。 注意:这会禁用安装在export PYTHONUSERBASE=/usr/local
中的软件包。
/usr/local/lib/python2.7/site-packages
将PYTHONPATH
设置为 prepend sys.path
,这会将其添加到export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
。
.bashrc
环境变量可以在.bash_profile
或/etc/environment
设置中导出,添加到$ PYTHONPATH=/usr/local/lib/python2.7/site-packages python
以使其在系统范围内进行,或者您可以在Python解释器调用之前使用所需的环境进行简单处理变量:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Pagesource
{
public static void main(String[] args)
{
Pagesource.loadPage("http://photos.filmibeat.com/celebs/kajal-aggarwal/photos-c14-e13421-p592995.html");
}
public static void loadPage(String url)
{
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get(url);
String html = driver.getPageSource();
System.out.println(html);
driver.quit();
}